#!/usr/bin/env bash # Tuxflotte Installer # Phase 0 – Preflight # # Prueft, dass Werkzeuge vorhanden sind, die spaetere Module (ab # 10_hardware.sh) brauchen. jq ist der einzige hier betroffene Fall: # 10_hardware.sh, 12_enrollment_auth.sh, 15_server_handshake.sh, # 17_device_status.sh, 20_profile_selection.sh, 25_installation_confirm.sh # und 30_runtime_blueprint.sh nutzen es alle. # # Historisch (bis zum Umstieg auf das eigenstaendige, per live-build gebaute # Boot-Medium) wurde jq hier noch zur Laufzeit per apt-get nachinstalliert, # weil das damalige Boot-Medium (eine gepatchte Linux-Mint-Live-ISO) es nicht # mitbrachte - real entdeckt: beim automatisierten Start ueber # start-kiosk.sh (kein Terminal, keine sichtbare Fehlermeldung) blieb der # Installer in 10_hardware.sh mit "Benoetigtes Programm nicht gefunden: jq" # haengen, sichtbar nur in ~/.xsession-errors. Das eigenstaendige Boot-Medium # bringt jq bereits im Paketsatz mit (siehe boot-medium/config/package-lists/ # tuxflotte.list.chroot) - diese Pruefung bleibt trotzdem als reine Assertion # bestehen, damit ein kuenftiger Paketlisten-Fehler hier fruh und klar auffaellt, # statt erst kryptisch in 10_hardware.sh. set -Eeuo pipefail readonly SCRIPT_NAME="${0##*/}" log() { printf '[%s] %s\n' "${SCRIPT_NAME}" "$*" >&2 } fatal() { printf '[%s] FEHLER: %s\n' "${SCRIPT_NAME}" "$*" >&2 exit 1 } command -v jq >/dev/null 2>&1 || fatal "jq fehlt auf dem Boot-Medium - Paketliste (tuxflotte.list.chroot) pruefen."