#!/usr/bin/env bash
# Installe TheBigIn (AppImage) pour l'utilisateur courant : télécharge la
# version courante, la place dans ~/Applications/ et crée une entrée dans le
# menu des applications (avec icône). Peut être relancé pour mettre à jour.
set -e

APP_NAME="TheBigIn"
APP_ID="thebigin"
APPIMAGE_URL_X64="https://download.thebigol.fr/files/bigin/1.0.13/TheBigIn_1.0.13_x64.AppImage"
APPIMAGE_URL_ARM64="https://download.thebigol.fr/files/bigin/1.0.13/TheBigIn_1.0.13_arm64.AppImage"

case "$(uname -m)" in
    x86_64|amd64)
        APPIMAGE_URL="$APPIMAGE_URL_X64"
        ;;
    aarch64|arm64)
        APPIMAGE_URL="$APPIMAGE_URL_ARM64"
        ;;
    *)
        echo "Architecture non reconnue : $(uname -m)" >&2
        exit 1
        ;;
esac

if [ -z "$APPIMAGE_URL" ]; then
    echo "$APP_NAME n'est pas disponible pour cette architecture ($(uname -m))." >&2
    exit 1
fi

INSTALL_DIR="$HOME/Applications"
DESKTOP_DIR="$HOME/.local/share/applications"
ICON_DIR="$HOME/.local/share/icons/hicolor/256x256/apps"
APPIMAGE_PATH="$INSTALL_DIR/$APP_NAME.AppImage"

mkdir -p "$INSTALL_DIR" "$DESKTOP_DIR" "$ICON_DIR"

echo "Téléchargement de $APP_NAME..."
if command -v curl >/dev/null 2>&1; then
    curl -fL --progress-bar -o "$APPIMAGE_PATH" "$APPIMAGE_URL"
elif command -v wget >/dev/null 2>&1; then
    wget -q --show-progress -O "$APPIMAGE_PATH" "$APPIMAGE_URL"
else
    echo "Ni curl ni wget ne sont installés. Installez-en un (ex : sudo apt install curl) puis relancez ce script." >&2
    exit 1
fi
chmod +x "$APPIMAGE_PATH"

echo "Installation de l'icône..."
TMP_DIR="$(mktemp -d)"
(
    cd "$TMP_DIR"
    "$APPIMAGE_PATH" --appimage-extract >/dev/null 2>&1
) || true
ICON_FILE="$TMP_DIR/squashfs-root/usr/share/icons/hicolor/256x256/apps/$APP_ID.png"
if [ -f "$ICON_FILE" ]; then
    cp "$ICON_FILE" "$ICON_DIR/$APP_ID.png"
fi
rm -rf "$TMP_DIR"

echo "Création du raccourci dans le menu des applications..."
cat > "$DESKTOP_DIR/$APP_ID.desktop" <<DESKTOP
[Desktop Entry]
Type=Application
Name=$APP_NAME
Exec="$APPIMAGE_PATH" %U
Icon=$APP_ID
Categories=Office;
Terminal=false
StartupWMClass=$APP_ID
DESKTOP
chmod +x "$DESKTOP_DIR/$APP_ID.desktop"

command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database "$DESKTOP_DIR" || true
command -v gtk-update-icon-cache >/dev/null 2>&1 && gtk-update-icon-cache -qtf "$HOME/.local/share/icons/hicolor" || true

echo ""
echo "$APP_NAME est installé : $APPIMAGE_PATH"
echo "Il est disponible dans le menu des applications."
