#!/bin/bash


sudo cp files/extrepo.config.yaml /etc/extrepo/config.yaml

# Vérifie si une commande ou un Flatpak est installé
is_installed() {
    local app_name="$1"
    local flatpak_ref="${2:-}"  # valeur vide si non fournie

    if command -v "$app_name" &> /dev/null; then
        return 0
    fi

    if [[ -n "$flatpak_ref" ]] && flatpak info --show-ref "$flatpak_ref" &> /dev/null; then
        return 0
    fi

    return 1
}

# 📺 FreeTube (Flatpak)
install_freetube() {
    local flatpak_ref="io.freetubeapp.FreeTube"
    local runtime="org.freedesktop.Platform//25.08"

    # Vérifie si FreeTube est déjà installé
    if is_installed freetube "$flatpak_ref"; then
        echo "📺 FreeTube est déjà installé (Flatpak ou système)."
        return
    fi

    echo "🔄 Mise à jour des métadonnées Flathub..."
    flatpak update --appstream -y

    echo "📦 Installation du runtime nécessaire..."
    if ! flatpak list --runtime | grep -qw "org.freedesktop.Platform.*25.08"; then
        flatpak install -y flathub "$runtime"
    else
        echo "✅ Runtime déjà installé."
    fi

    echo "📦 Installation de FreeTube..."
    flatpak install -y flathub "$flatpak_ref"

    # Vérifie que l'installation a réussi
    if is_installed freetube "$flatpak_ref"; then
        echo "🎉 FreeTube a été installé avec succès !"
    else
        echo "❌ Échec de l'installation de FreeTube."
    fi
}



# 🎥 Zoom (via .deb)
install_zoom() {
    if is_installed zoom; then
        echo "🎥 Zoom est déjà installé."
        return
    fi

    run_step "🎥 Installation de Zoom (.deb officiel)" "
    wget -q https://zoom.us/client/latest/zoom_amd64.deb -O /tmp/zoom.deb &&
    sudo apt install -y /tmp/zoom.deb &&
    rm /tmp/zoom.deb
    "
}

# 💬 Element (via extrepo)
install_element() {
    if is_installed element-desktop; then
        echo "💬 Element est déjà installé."
        return
    fi

    run_step "💬 Installation de Element (Extrepo)" "
    sudo extrepo enable element.io &&
    sudo apt update &&
    sudo apt install -y element-desktop
    "
}

# 🌐 Google Chrome (via extrepo)
install_chrome() {
    if is_installed google-chrome; then
        echo "🌐 Google Chrome est déjà installé."
        return
    fi

    run_step "🌐 Installation de Google Chrome (Extrepo)" "
    sudo extrepo enable google_chrome &&
    sudo apt update &&
    sudo apt install -y google-chrome-stable
    "
}

# 🧑‍💻 VSCodium (via extrepo)
install_vscodium() {
    if is_installed codium; then
        echo "🧑‍💻 VSCodium est déjà installé."
        return
    fi

    run_step "🧑‍💻 Installation de VSCodium (Extrepo)" "
    sudo extrepo enable vscodium &&
    sudo apt update &&
    sudo apt install -y codium
    "
}
