#!/usr/bin/env bash
# UDT Mini - Linux / macOS kurulumu (tek tik).
set -e

DIR="$(cd "$(dirname "$0")" && pwd)"
HOME_DIR="$HOME/.udt-mini"
DESKTOP_DIR="$HOME/Desktop"

echo "=========================================="
echo "  UDT Mini kurulumu"
echo "=========================================="

# 0) Bagimsiz binary kontrolu (Oncelikli Calisma Hatti)
if [ -f "$DIR/udt-mini" ]; then
    echo "[OK] Bagimsiz UDT Mini binary'si tespit edildi (Python gerekmez)."
    mkdir -p "$HOME_DIR"
    cp "$DIR/udt-mini" "$HOME_DIR/udt-mini"
    chmod +x "$HOME_DIR/udt-mini"
    cp "$DIR/README-LINUX-MAC.txt" "$HOME_DIR/" 2>/dev/null || true
    echo "[OK] Binary yuklendi: $HOME_DIR/udt-mini"

    # Baslatici olustur
    cat > "$HOME_DIR/udt-mini.sh" <<EOF
#!/usr/bin/env bash
exec "$HOME_DIR/udt-mini" "\$@"
EOF
    chmod +x "$HOME_DIR/udt-mini.sh"

    # Masaustu kisayolu
    if [ -d "$DESKTOP_DIR" ]; then
        cat > "$DESKTOP_DIR/UDT Mini.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=UDT Mini
Comment=Bilgisayarini izle, bak, onar
Exec=$HOME_DIR/udt-mini
Icon=utilities-system-monitor
Terminal=false
Categories=System;
EOF
        chmod +x "$DESKTOP_DIR/UDT Mini.desktop"
        echo "[OK] Masaustu kisayolu olusturuldu"
    fi

    # Geri alma betigi
    cat > "$HOME_DIR/uninstall.sh" <<EOF
#!/usr/bin/env bash
rm -rf "$HOME_DIR"
rm -f "$DESKTOP_DIR/UDT Mini.desktop"
rm -f "$HOME/.udt_printers.json"
echo "UDT Mini kaldirildi."
EOF
    chmod +x "$HOME_DIR/uninstall.sh"

    echo ""
    echo "=========================================="
    echo "  Kurulum tamamlandi (Bagimsiz Binary)."
    echo "  Baslatmak icin: $HOME_DIR/udt-mini"
    echo "  Kaldirmak icin: $HOME_DIR/uninstall.sh"
    echo "=========================================="
    echo ""
    read -r -p "UDT Mini simdi baslatilsin mi? [E/h]: " ans
    case "$ans" in
        [Hh]*|"") echo "Kapatildi. Baslatmak icin: $HOME_DIR/udt-mini"; exit 0 ;;
    esac

    exec "$HOME_DIR/udt-mini"
fi

# 1) Python kontrolu (Fallback Hatti)
PY=""
for cand in python3 python3.12 python3.11 python3.10 python3.9 python; do
    if command -v "$cand" >/dev/null 2>&1; then
        if "$cand" -c 'import sys; sys.exit(0 if sys.version_info>=(3,9) else 1)' 2>/dev/null; then
            PY="$cand"; break
        fi
    fi
done

if [ -z "$PY" ]; then
    echo ""
    echo "[!] Python 3.9+ bulunamadi."
    echo "    Linux  -> sudo apt install python3 python3-tk"
    echo "    macOS  -> brew install python-tk   (veya python.org'dan kurun)"
    echo ""
    read -r -p "Kurulumu bitirdikten sonra Enter'a basin: " _
    for cand in python3 python3.12 python3.11 python3.10 python3.9 python; do
        if command -v "$cand" >/dev/null 2>&1; then
            if "$cand" -c 'import sys; sys.exit(0 if sys.version_info>=(3,9) else 1)' 2>/dev/null; then
                PY="$cand"; break
            fi
        fi
    done
fi

if [ -z "$PY" ]; then
    echo "[X] Python bulunamadi, kurulum durduruldu."
    exit 1
fi
echo "[OK] Python: $($PY --version 2>&1)"

# 2) tkinter kontrolu
if ! "$PY" -c "import tkinter" >/dev/null 2>&1; then
    echo "[!] tkinter eksik. Kuruluyor..."
    if command -v apt-get >/dev/null 2>&1; then
        sudo apt-get install -y python3-tk >/dev/null 2>&1 || true
    elif command -v brew >/dev/null 2>&1; then
        brew install python-tk >/dev/null 2>&1 || true
    fi
fi

# 3) Dosyalari kopyala
mkdir -p "$HOME_DIR"
cp "$DIR/udt_mini_standalone.py" "$HOME_DIR/"
cp "$DIR/README-LINUX-MAC.txt" "$HOME_DIR/" 2>/dev/null || true
echo "[OK] Dosyalar: $HOME_DIR"

# 4) Baslatici olustur
cat > "$HOME_DIR/udt-mini.sh" <<EOF
#!/usr/bin/env bash
exec "$PY" "$HOME_DIR/udt_mini_standalone.py" "\$@"
EOF
chmod +x "$HOME_DIR/udt-mini.sh"

# 5) Masaustu kisayolu
if [ -d "$DESKTOP_DIR" ]; then
    cat > "$DESKTOP_DIR/UDT Mini.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=UDT Mini
Comment=Bilgisayarini izle, bak, onar
Exec=$HOME_DIR/udt-mini.sh
Icon=utilities-system-monitor
Terminal=false
Categories=System;
EOF
    chmod +x "$DESKTOP_DIR/UDT Mini.desktop"
    echo "[OK] Masaustu kisayolu olusturuldu"
fi

# 6) Geri alma betigi
cat > "$HOME_DIR/uninstall.sh" <<EOF
#!/usr/bin/env bash
rm -rf "$HOME_DIR"
rm -f "$DESKTOP_DIR/UDT Mini.desktop"
rm -f "$HOME/.udt_printers.json"
echo "UDT Mini kaldirildi."
EOF
chmod +x "$HOME_DIR/uninstall.sh"

echo ""
echo "=========================================="
echo "  Kurulum tamamlandi."
echo "  Baslatmak icin: $HOME_DIR/udt-mini.sh"
echo "  Kaldirmak icin: $HOME_DIR/uninstall.sh"
echo "=========================================="
echo ""
read -r -p "UDT Mini simdi baslatilsin mi? [E/h]: " ans
case "$ans" in
    [Hh]*|"") echo "Kapatildi. Baslatmak icin: $HOME_DIR/udt-mini.sh"; exit 0 ;;
esac

exec "$HOME_DIR/udt-mini.sh"
