#!/bin/bash
# skillfish-hub-helper — quello che viene dai NOSTRI repository.
#
# Chiede la password una volta per sessione (os.skillfish.hub.helper), perché
# quello che passa da qui è firmato dalla nostra chiave: aggiornamenti,
# installazioni e rimozioni dai repository configurati, firmware, conteggio.
#
# ⚠️ QUI NON SI INSTALLA NIENTE PRESO DA FUORI e non si aggiungono sorgenti.
# Quelle cose stanno in skillfish-hub-local, che la password la chiede sempre.
# Se un domani qualcuno aggiungesse qui l'azione «deb», la differenza fra le due
# porte sparirebbe e resterebbe solo la comodità.
#
#   tx-start aggiorna|installa|rimuovi|elenchi|firmware [argomenti...]
#   conta | fw-refresh | fw-list
#   apt-update | apt-upgrade | apt-install | apt-remove
set -uo pipefail
. /usr/local/lib/skillfish/hub-comune.sh

AZIONE="${1:-}"; shift || true
case "$AZIONE" in
  tx-start)
    SOTTO="${1:-}"
    case "$SOTTO" in
      aggiorna|installa|rimuovi|elenchi|firmware) ;;
      *) echo "questa azione non passa da qui: usa skillfish-hub-local" >&2; exit 2 ;;
    esac
    tx_start "$@"
    ;;
  conta)        conta_aggiornamenti ;;
  fw-refresh)   fwupdmgr refresh --force ;;
  fw-list)      fwupdmgr get-updates --json 2>/dev/null || echo '{"Devices":[]}' ;;
  apt-update)   apt-get update ;;
  apt-upgrade)  apt-get update && apt-get "${APTOPT[@]}" full-upgrade ;;
  apt-install)  [ $# -ge 1 ] || { echo "nessun pacchetto"; exit 2; }; apt-get update; apt-get "${APTOPT[@]}" install "$@" ;;
  apt-remove)   [ $# -ge 1 ] || { echo "nessun pacchetto"; exit 2; }; apt-get "${APTOPT[@]}" purge "$@"; apt-get "${APTOPT[@]}" autoremove ;;
  *) echo "uso: skillfish-hub-helper tx-start aggiorna|installa|rimuovi|elenchi|firmware ... | conta | fw-refresh | fw-list | apt-update | apt-upgrade | apt-install | apt-remove"; exit 2 ;;
esac
