# decky-loader est un service système par compte (decky-loader@<compte>), mais
# il écoute sur 127.0.0.1:1337 : une seule instance par machine. Le paquet
# l'active pour le premier compte humain (celui de l'installation, comme le
# script amont de Decky) et désactive à son départ toute instance active.
# Pendant l'installation d'AffûtOS, le module « users » de Calamares passe
# avant les paquets : le compte existe déjà.
_compte() {
    getent passwd | awk -F: '$3 >= 1000 && $3 < 60000 && $6 ~ "^/home/" && (n == "" || $3 < u) { n = $1; u = $3 }
                             END { if (n != "") print n }'
}
_vivant() { [ -d /run/systemd/system ]; }   # pas dans le chroot de l'installateur

post_install() {
    local c
    # Ancienne installation (script de Decky, service plugin_loader dans /etc) :
    # deux chargeurs se disputeraient le port 1337. Ses fichiers ne sont à
    # aucun paquet ; le chargeur qu'elle laissait dans homebrew/services reste,
    # la capture l'écarte déjà.
    if [ -e /etc/systemd/system/plugin_loader.service ]; then
        systemctl disable plugin_loader.service >/dev/null 2>&1
        _vivant && systemctl stop plugin_loader.service >/dev/null 2>&1
        rm -rf /etc/systemd/system/plugin_loader.service /etc/systemd/system/plugin_loader.service.d
    fi
    _vivant && systemctl daemon-reload
    c=$(_compte)
    [ -n "$c" ] || return 0
    systemctl enable "decky-loader@$c.service" >/dev/null 2>&1
    _vivant && systemctl start "decky-loader@$c.service"
    return 0
}
pre_remove() {
    local c
    for c in /etc/systemd/system/multi-user.target.wants/decky-loader@*.service; do
        [ -L "$c" ] || continue   # liens posés par « systemctl enable »
        c=${c##*/}
        _vivant && systemctl stop "$c"
        systemctl disable "$c" >/dev/null 2>&1
    done
    return 0
}
