#!/usr/bin/env bash
set -euo pipefail

APP_ID="de.12rabe.wherigo-builder"
APP_NAME="12rabe Wherigo App Builder"
ARCHIVE_NAME="12rabe-wherigo-app-builder-0.1.2-linux-x64.tar.gz"
EXTRACTED_NAME="12rabe-wherigo-app-builder-0.1.2-linux-x64"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ARCHIVE_PATH="$SCRIPT_DIR/$ARCHIVE_NAME"
ICON_SOURCE="$SCRIPT_DIR/12rabe-wherigo-icon.png"
DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
INSTALL_DIR="$DATA_HOME/12rabe-wherigo-app-builder"
BIN_DIR="$HOME/.local/bin"
DESKTOP_DIR="$DATA_HOME/applications"
ICON_DIR="$DATA_HOME/icons/hicolor/512x512/apps"
TMP_DIR="$(mktemp -d)"

cleanup() {
  rm -rf "$TMP_DIR"
}
trap cleanup EXIT

if [ ! -f "$ARCHIVE_PATH" ]; then
  echo "Fehler: $ARCHIVE_NAME liegt nicht neben diesem Installationsskript."
  exit 1
fi

mkdir -p "$BIN_DIR" "$DESKTOP_DIR" "$ICON_DIR"
tar -xzf "$ARCHIVE_PATH" -C "$TMP_DIR"

if [ ! -d "$TMP_DIR/$EXTRACTED_NAME" ]; then
  echo "Fehler: Das Linux-Paket konnte nicht richtig entpackt werden."
  exit 1
fi

rm -rf "$INSTALL_DIR.tmp"
mkdir -p "$INSTALL_DIR.tmp"
cp -a "$TMP_DIR/$EXTRACTED_NAME/." "$INSTALL_DIR.tmp/"
rm -rf "$INSTALL_DIR"
mv "$INSTALL_DIR.tmp" "$INSTALL_DIR"
chmod +x "$INSTALL_DIR/wherigo-app-builder" || true
chmod +x "$INSTALL_DIR/chrome-sandbox" || true

if [ -f "$ICON_SOURCE" ]; then
  cp "$ICON_SOURCE" "$ICON_DIR/$APP_ID.png"
fi

cat > "$BIN_DIR/12rabe-wherigo-app-builder" <<'LAUNCHER'
#!/usr/bin/env bash
exec "$HOME/.local/share/12rabe-wherigo-app-builder/wherigo-app-builder" "$@"
LAUNCHER
chmod +x "$BIN_DIR/12rabe-wherigo-app-builder"

cat > "$DESKTOP_DIR/$APP_ID.desktop" <<DESKTOP
[Desktop Entry]
Name=$APP_NAME
Comment=Wherigo App Builder von 12rabe
Exec=$BIN_DIR/12rabe-wherigo-app-builder
Icon=$APP_ID
Terminal=false
Type=Application
Categories=Development;Utility;
StartupWMClass=12rabe Wherigo App Builder
DESKTOP

if command -v update-desktop-database >/dev/null 2>&1; then
  update-desktop-database "$DESKTOP_DIR" >/dev/null 2>&1 || true
fi

echo "$APP_NAME wurde installiert."
echo "Start: 12rabe-wherigo-app-builder"
