#!/usr/bin/env bash
# =============================================================================
# TimeTracker (Memtime-Nachbau) – Installations-Script
# Unterstützt: macOS (Homebrew) und Linux (apt/dnf)
# Verwendung:  bash install.sh
# =============================================================================
set -euo pipefail

REPO_URL="https://github.com/uh8888/memtime-nachbau.git"
APP_DIR="$HOME/timetracker"

echo ""
echo "╔══════════════════════════════════════════════╗"
echo "║   TimeTracker – Installations-Script         ║"
echo "╚══════════════════════════════════════════════╝"
echo ""

# --- Betriebssystem erkennen ---
OS="$(uname -s)"
case "$OS" in
  Darwin) PLATFORM="macos" ;;
  Linux)  PLATFORM="linux" ;;
  *)
    echo "❌ Nicht unterstütztes Betriebssystem: $OS"
    exit 1
    ;;
esac
echo "▶ Erkanntes System: $OS ($PLATFORM)"

# --- Python prüfen ---
if ! command -v python3 &>/dev/null; then
  echo "❌ Python 3 nicht gefunden."
  if [ "$PLATFORM" = "macos" ]; then
    echo "   Installiere mit: brew install python"
  else
    echo "   Installiere mit: sudo apt install python3 python3-pip python3-venv"
  fi
  exit 1
fi
PYTHON_VERSION=$(python3 --version 2>&1)
echo "▶ $PYTHON_VERSION gefunden"

# --- Git prüfen ---
if ! command -v git &>/dev/null; then
  echo "❌ Git nicht gefunden."
  if [ "$PLATFORM" = "macos" ]; then
    echo "   Installiere mit: brew install git"
  else
    echo "   Installiere mit: sudo apt install git"
  fi
  exit 1
fi

# --- Repo clonen oder updaten ---
if [ -d "$APP_DIR/.git" ]; then
  echo "▶ Repo bereits vorhanden – aktualisiere..."
  git -C "$APP_DIR" pull --ff-only
else
  echo "▶ Klone Repo nach $APP_DIR ..."
  git clone "$REPO_URL" "$APP_DIR"
fi

cd "$APP_DIR"

# --- Virtuelle Umgebung ---
if [ ! -d ".venv" ]; then
  echo "▶ Erstelle virtuelle Umgebung (.venv)..."
  python3 -m venv .venv
fi
source .venv/bin/activate
echo "▶ Virtuelle Umgebung aktiviert"

# --- Pip aktualisieren ---
pip install --quiet --upgrade pip

# --- Abhängigkeiten installieren ---
echo "▶ Installiere Abhängigkeiten (requirements.txt)..."
pip install --quiet -r requirements.txt

if [ "$PLATFORM" = "macos" ]; then
  echo "▶ Installiere macOS-spezifische Pakete (pyobjc)..."
  pip install --quiet -r requirements-macos.txt
else
  echo "▶ Installiere Linux-spezifische Pakete (python-xlib, ewmh)..."
  pip install --quiet -r requirements-linux.txt
fi

# --- Kurztest im Headless-Modus ---
echo ""
echo "▶ Führe Kurztest durch (5 Sekunden Headless-Modus)..."
timeout 6 python main.py --headless 2>&1 | head -10 || true

# --- Start-Script erstellen ---
cat > "$APP_DIR/start.sh" << 'STARTSCRIPT'
#!/usr/bin/env bash
cd "$(dirname "$0")"
source .venv/bin/activate
python main.py "$@"
STARTSCRIPT
chmod +x "$APP_DIR/start.sh"

# --- macOS: Accessibility-Hinweis ---
if [ "$PLATFORM" = "macos" ]; then
  echo ""
  echo "╔══════════════════════════════════════════════════════════════╗"
  echo "║  macOS: Accessibility-Rechte erforderlich                    ║"
  echo "║                                                              ║"
  echo "║  Systemeinstellungen → Datenschutz & Sicherheit              ║"
  echo "║  → Bedienungshilfen → Terminal (oder deine IDE) erlauben    ║"
  echo "╚══════════════════════════════════════════════════════════════╝"
fi

echo ""
echo "╔══════════════════════════════════════════════╗"
echo "║  ✅ Installation abgeschlossen!              ║"
echo "╚══════════════════════════════════════════════╝"
echo ""
echo "  Starten mit:   $APP_DIR/start.sh"
echo "  Headless-Test: $APP_DIR/start.sh --headless"
echo ""
echo "  Optional – KI-Analyse via Ollama:"
if [ "$PLATFORM" = "macos" ]; then
  echo "    brew install ollama"
else
  echo "    curl -fsSL https://ollama.com/install.sh | sh"
fi
echo "    ollama pull gemma3:4b"
echo "    ollama serve"
echo ""
