#!/bin/sh
# mhmt-config-flatpak: varsayılan ve sıradaki Flathub uygulamalarını kurar.
#
# Listeler:
#   /usr/share/mhmt/flatpak/varsayilan.list   her kurulumda gelen uygulamalar (paket)
#   /var/lib/mhmt/flatpak/sirada              rollerin eklediği uygulamalar (mhmt-rol)
# Kurulan her kimlik /var/lib/mhmt/flatpak/kuruldu'ya yazılır ve bir daha kurulmaz:
# kullanıcı sonradan kaldırırsa geri gelmez.
#
# Chrome ve Discord'un lisansı ISO'ya gömülmelerine izin vermez, Brave'in Flathub paketi
# programı kurulumda üreticiden indirir; bu yüzden ISO'da değil, internet olunca kurulurlar.
set -u

STATE=/var/lib/mhmt/flatpak
DEFAULTS=/usr/share/mhmt/flatpak/varsayilan.list
mkdir -p "$STATE"
touch "$STATE/kuruldu" "$STATE/sirada"

wanted=$(cat "$DEFAULTS" "$STATE/sirada" 2>/dev/null | sed 's/#.*//' | tr -s ' \t' '\n' | grep -v '^$' | sort -u)
pending=""
for app in $wanted; do
    grep -qx "$app" "$STATE/kuruldu" || pending="$pending $app"
done
[ -n "$pending" ] || exit 0

# Uzak depo paketle gelir (postinst); yine de yoksa eklenir.
flatpak remote-add --system --if-not-exists flathub /usr/share/mhmt/flatpak/flathub.flatpakrepo

# Ağ yoksa sessizce çık; zamanlayıcı daha sonra yeniden dener.
getent hosts dl.flathub.org >/dev/null 2>&1 || exit 0

status=0
for app in $pending; do
    if flatpak install --system --noninteractive -y flathub "$app"; then
        echo "$app" >> "$STATE/kuruldu"
        echo "kuruldu: $app"
        if [ -x "/usr/share/mhmt/flatpak/sonra.d/$app" ]; then
            "/usr/share/mhmt/flatpak/sonra.d/$app" || true
        fi
    else
        echo "kurulamadı, sonra yeniden denenecek: $app" >&2
        status=1
    fi
done
exit $status
