#!/bin/bash
# =====================================================================
#  Schüler-Account für Fedora KDE (Surface Go 2)
#
#  Was das Skript macht:
#  - legt den Account "user" (Kennwort "user") an, Kennwort nicht änderbar
#  - meldet ihn beim Start automatisch an
#  - setzt ihn bei jeder Abmeldung und jedem Neustart zurück
#  - stellt das System auf Deutsch (Sprache, Tastatur, Zeitzone Berlin) um
#    und entfernt störende Hinweise
#
#  Aufruf (als admin in der Konsole, im Ordner "Downloads"):
#     sudo bash schueler-setup.sh             -> einrichten
#     sudo bash schueler-setup.sh vorlage     -> aktuellen Schüler-Desktop als Vorlage speichern
#     sudo bash schueler-setup.sh entfernen   -> Reset und Auto-Login wieder abschalten
#
#  Legende in den Kommentaren:
#     [PFLICHT]  Abschnitt nicht auskommentieren, sonst funktioniert
#                Auto-Login oder Reset nicht mehr.
#     [OPTIONAL] Abschnitt darf auskommentiert werden (jede Zeile mit #
#                beginnen lassen). Dahinter steht, was dann fehlt.
#
#  Voraussetzung: Internetverbindung (sonst bricht das Skript sofort ab).
#
#  Das Skript darf mehrfach ausgeführt werden. Es schreibt alle Dateien
#  neu, legt den Account aber nicht doppelt an.
# =====================================================================

# [PFLICHT] Bei einem Fehler sofort abbrechen, statt mit halber
# Einrichtung weiterzumachen. Befehle mit "|| true" dürfen scheitern.
set -euo pipefail

# ---------------------------------------------------------------------
# Einstellungen – hier dürfen Sie Werte ändern
# ---------------------------------------------------------------------
BENUTZER="user"                        # Name des Schüler-Accounts
PASSWORT="user"                        # nur nötig, falls Auto-Login einmal nicht greift
VORLAGE="/etc/schueler-vorlage"        # Ordner, aus dem das Home bei jedem Reset neu aufgebaut wird
RESET="/usr/local/sbin/schueler-reset" # Pfad des Reset-Skripts, das bei An-/Abmeldung läuft

# [PFLICHT] Prüfen, ob das Skript mit Admin-Rechten (sudo) läuft.
# Ohne diese Rechte kann es keine Systemdateien schreiben.
if [ "$(id -u)" -ne 0 ]; then
  echo "Bitte mit sudo starten:  sudo bash $0"
  exit 1
fi

# ---------------------------------------------------------------------
# [PFLICHT] Hilfsfunktionen für die Internetprüfung (Schritt 0 und 11)
# ---------------------------------------------------------------------
# Liefert "erfolgreich", wenn die Fedora-Paketserver erreichbar sind.
internet_ok() {
  curl -fsS --max-time 10 -o /dev/null https://mirrors.fedoraproject.org/ 2>/dev/null \
    || curl -fsS --max-time 10 -o /dev/null https://fedoraproject.org/ 2>/dev/null
}

# Wartet bis zu 120 Sekunden auf eine Internetverbindung.
# Zeigt dabei alle 3 Sekunden einen Punkt als Fortschritt.
warte_auf_internet() {
  local ende=$(( SECONDS + 120 ))
  printf "      Warte auf Internetverbindung "
  while [ "$SECONDS" -lt "$ende" ]; do
    if internet_ok; then
      echo " verbunden."
      return 0
    fi
    printf "."
    sleep 3
  done
  echo " keine Verbindung."
  return 1
}

# =====================================================================
#  Teil A: Einrichtung  (Aufruf ohne Zusatz oder mit "einrichten")
# =====================================================================
einrichten() {

  # -------------------------------------------------------------------
  # 0/12 [PFLICHT] Internetverbindung prüfen.
  # Mehrere Schritte laden Pakete herunter (Sprachpakete, Surface-Kernel)
  # oder entfernen Pakete mit dnf. Ohne Internet würden sie still
  # übersprungen und die Einrichtung bliebe unvollständig. Deshalb bricht
  # das Skript hier ab, bevor es etwas verändert.
  # -------------------------------------------------------------------
  echo "0/12  Internetverbindung prüfen ..."
  if ! internet_ok; then
    echo
    echo "ABBRUCH: Keine Internetverbindung."
    echo "Es wurde nichts verändert."
    echo
    echo "So geht's weiter:"
    echo "  1. WLAN verbinden: unten rechts auf das Netzwerk-Symbol tippen"
    echo "     oder in der Konsole:  nmcli device wifi connect 'NAME' password 'PASSWORT'"
    echo "  2. Prüfen, ob Flugmodus aus ist."
    echo "  3. Skript erneut starten."
    exit 1
  fi
  echo "      Internet erreichbar."

  # -------------------------------------------------------------------
  # 1/12 [PFLICHT] Schüler-Account anlegen, Kennwort setzen und sperren.
  # Die Benutzernummer (UID) wird für Schritt 5 gebraucht.
  # -------------------------------------------------------------------
  echo "1/12  Account '$BENUTZER' anlegen ..."
  if ! id "$BENUTZER" &>/dev/null; then
    useradd -m -c "Schüler" "$BENUTZER"
  fi
  echo "$BENUTZER:$PASSWORT" | chpasswd
  UIDNR=$(id -u "$BENUTZER")

  # Kennwort darf der Benutzer selbst nicht ändern:
  # a) "passwd" verweigert Änderungen (Mindestalter 99999 Tage, läuft nie ab)
  chage -m 99999 -M 99999 "$BENUTZER"
  # b) Änderung über die Systemeinstellungen (AccountsService) per Polkit sperren
  mkdir -p /etc/polkit-1/rules.d
  cat > /etc/polkit-1/rules.d/50-benutzer-kennwort.rules <<EOF
// $BENUTZER darf Kennwort und Kontodaten nicht selbst ändern
polkit.addRule(function(action, subject) {
    if (subject.user == "$BENUTZER" &&
        (action.id == "org.freedesktop.accounts.change-own-password" ||
         action.id == "org.freedesktop.accounts.change-own-user-data")) {
        return polkit.Result.NO;
    }
});
EOF
  # c) Benutzerverwaltung in den Systemeinstellungen ausblenden
  cat > /etc/kde5rc <<'EOF'
[KDE Control Module Restrictions][$i]
kcm_users=false
EOF
  # d) Zusätzlich setzt das Reset-Skript (Schritt 4) das Kennwort bei jeder
  #    An- und Abmeldung auf den Standard zurück.

  # -------------------------------------------------------------------
  # 2/12 [PFLICHT] Auto-Login im Plasma Login Manager.
  # "Relogin=true" ist nötig: Ohne diese Zeile fragt Fedora 44 wegen
  # eines bekannten Fehlers trotzdem nach dem Passwort. Nebenwirkung:
  # Nach dem Abmelden wird der Schüler sofort wieder angemeldet.
  # -------------------------------------------------------------------
  echo "2/12  Auto-Login einrichten ..."
  cat > /etc/plasmalogin.conf <<EOF
[Autologin]
User=$BENUTZER
Session=plasma.desktop
Relogin=true
EOF

  # -------------------------------------------------------------------
  # 3/12 [PFLICHT] Vorlage anlegen. Aus diesem Ordner wird das Home
  # des Schülers bei jedem Reset neu aufgebaut. Eine schon vorhandene
  # Vorlage (z. B. mit eingerichtetem Desktop) bleibt erhalten.
  # -------------------------------------------------------------------
  echo "3/12  Vorlage anlegen ..."
  [ -d "$VORLAGE" ] || cp -a /etc/skel "$VORLAGE"

  # -------------------------------------------------------------------
  # 4/12 [PFLICHT] Reset-Skript anlegen. Es löscht alle Dateien des
  # Schülers (Home und temporäre Ordner) und kopiert die Vorlage zurück.
  # Ohne diesen Schritt bleiben alle Schülerdaten erhalten.
  # -------------------------------------------------------------------
  echo "4/12  Reset-Skript anlegen ..."
  # Kopf mit den Einstellungen von oben, danach der feste Teil
  cat > "$RESET" <<EOF
#!/bin/bash
# Setzt das Home von "$BENUTZER" auf die Vorlage zurück.
# Wird automatisch bei jeder An- und Abmeldung gestartet.
set -u
U="$BENUTZER"
P="$PASSWORT"
H="/home/$BENUTZER"
V="$VORLAGE"
EOF
  cat >> "$RESET" <<'EOF'

# Sicherheitsbremsen: nur ein Home unter /home anfassen, nur wenn die Vorlage existiert
case "$H" in /home/?*) ;; *) exit 0 ;; esac
[ -d "$V" ] || exit 0

# Reste des Benutzers in temporären Ordnern löschen
find /tmp /var/tmp /dev/shm -xdev -user "$U" -delete 2>/dev/null

# Home leeren und aus der Vorlage neu aufbauen
mkdir -p "$H"
find "$H" -xdev -mindepth 1 -delete
cp -a "$V"/. "$H"/

# Besitzer, Rechte und SELinux-Kennzeichnung korrigieren, sonst klappt die Anmeldung nicht
chown -R "$U:$U" "$H"
chmod 700 "$H"
restorecon -RF "$H" 2>/dev/null

# Kennwort auf den Standard zurücksetzen, falls es doch geändert wurde
echo "$U:$P" | chpasswd 2>/dev/null
exit 0
EOF
  # Ausführbar machen und SELinux-Kennzeichnung setzen, damit systemd es starten darf
  # (nur für root lesbar, da das Kennwort darin steht)
  chmod 700 "$RESET"
  restorecon -v "$RESET" >/dev/null 2>&1 || true

  # -------------------------------------------------------------------
  # 5/12 [PFLICHT] Reset an An- und Abmeldung koppeln.
  # a) Das Reset-Skript läuft vor dem Start und nach dem Ende jeder
  #    Sitzung des Schülers. "-" verhindert, dass ein Fehler im Skript
  #    die Anmeldung blockiert; "+" gibt ihm Admin-Rechte.
  # -------------------------------------------------------------------
  echo "5/12  Reset an An- und Abmeldung koppeln ..."
  mkdir -p "/etc/systemd/system/user@${UIDNR}.service.d"
  cat > "/etc/systemd/system/user@${UIDNR}.service.d/reset.conf" <<EOF
[Service]
ExecStartPre=-+$RESET
ExecStopPost=-+$RESET
EOF
  # b) Beim Abmelden alle Programme des Schülers sofort beenden. Sonst
  #    läuft seine Sitzung im Hintergrund weiter und der Reset startet nicht.
  mkdir -p /etc/systemd/logind.conf.d
  cat > /etc/systemd/logind.conf.d/schueler.conf <<EOF
[Login]
KillUserProcesses=yes
KillOnlyUsers=$BENUTZER
UserStopDelaySec=0
EOF

  # -------------------------------------------------------------------
  # 6/12 [OPTIONAL] Sperrbildschirm abschalten, Bildschirm-Energiesparen.
  # Fehlt dieser Abschnitt: Nach einer Pause oder dem Aufklappen sperrt
  # sich das Gerät und verlangt das Schüler-Passwort.
  # -------------------------------------------------------------------
  echo "6/12  Sperrbildschirm aus, Passwortspeicher aus, Bildschirm-Energiesparen ..."
  mkdir -p /etc/xdg
  cat > /etc/xdg/kscreenlockerrc <<EOF
[Daemon]
Autolock=false
LockOnResume=false
EOF
  # [OPTIONAL] Passwortspeicher (KWallet) abschalten.
  # Fehlt dieser Teil: Bei jeder Sitzung kann ein Fenster erscheinen,
  # das nach einem neuen Passwort für den Passwortspeicher fragt.
  cat > /etc/xdg/kwalletrc <<EOF
[Wallet]
Enabled=false
EOF
  # [OPTIONAL] "Bildschirmschoner": Bildschirm nach Inaktivität abdunkeln
  # und dann ausschalten. Ein Tippen oder Wischen weckt ihn OHNE Passwort,
  # weil der Sperrbildschirm oben abgeschaltet ist.
  # Zeiten in Sekunden: abdunkeln nach 3 Min., aus nach 5 Min.
  # (Akku fast leer: abdunkeln nach 2 Min., aus nach 5 Min.)
  # Bei Akkubetrieb zusätzlich Ruhezustand nach 30 Min. (aufwecken mit
  # dem Ein-/Ausschalter, ebenfalls ohne Passwort).
  # Fehlt dieser Teil: Plasma-Standardwerte gelten.
  cat > /etc/xdg/powerdevilrc <<EOF
[AC][Display]
DimDisplayWhenIdle=true
DimDisplayIdleTimeoutSec=180
TurnOffDisplayWhenIdle=true
TurnOffDisplayIdleTimeoutSec=300

[AC][SuspendAndShutdown]
AutoSuspendAction=0

[Battery][Display]
DimDisplayWhenIdle=true
DimDisplayIdleTimeoutSec=180
TurnOffDisplayWhenIdle=true
TurnOffDisplayIdleTimeoutSec=300

[Battery][SuspendAndShutdown]
AutoSuspendAction=1
AutoSuspendIdleTimeoutSec=1800

[LowBattery][Display]
DimDisplayWhenIdle=true
DimDisplayIdleTimeoutSec=120
TurnOffDisplayWhenIdle=true
TurnOffDisplayIdleTimeoutSec=300
EOF

  # -------------------------------------------------------------------
  # 7/12 [OPTIONAL] Begrüßungsassistent entfernen (gilt für alle Benutzer).
  # Fehlt dieser Abschnitt: Der Assistent erscheint nach jedem Reset neu
  # und muss jedes Mal weggeklickt werden.
  # -------------------------------------------------------------------
  echo "7/12  Begrüßungsassistent entfernen ..."
  dnf remove -y plasma-welcome plasma-welcome-fedora >/dev/null 2>&1 || dnf remove -y plasma-welcome || true

  # -------------------------------------------------------------------
  # 8/12 [OPTIONAL] Update-Hinweis rechts unten entfernen (gilt auch für
  # admin). Fehlt dieser Abschnitt: Schüler sehen regelmäßig
  # "Updates available". Achtung: Updates dann selbst als admin
  # einspielen (sudo dnf upgrade).
  # -------------------------------------------------------------------
  echo "8/12  Update-Hinweise entfernen ..."
  dnf remove -y plasma-discover-notifier || true

  # -------------------------------------------------------------------
  # 9/12 [OPTIONAL] Sprache, Tastatur und Zeitzone auf Deutschland.
  # Fehlt dieser Abschnitt: Der Schüler-Account bleibt englisch, weil
  # seine eigene Spracheinstellung bei jedem Reset gelöscht wird.
  # -------------------------------------------------------------------
  echo "9/12  Sprache, Tastatur und Zeitzone (Europe/Berlin) einstellen ..."
  # Zeitzone Berlin und automatische Zeit aus dem Internet (NTP).
  # Damit ist die Auswahl der Zeitzone im Installer egal.
  timedatectl set-timezone Europe/Berlin || true
  timedatectl set-ntp true || true
  # Deutsche Übersetzungen für Programme (Firefox, LibreOffice, KDE-Apps)
  dnf install -y langpacks-de glibc-langpack-de || true
  # Systemsprache, Datums- und Zahlenformat
  localectl set-locale LANG=de_DE.UTF-8
  # Deutsche Tastatur für Textkonsole und grafische Oberfläche
  localectl set-keymap de-nodeadkeys || localectl set-keymap de || true
  localectl set-x11-keymap de "" nodeadkeys || true
  # Plasma-Oberfläche für alle Benutzer auf Deutsch
  cat > /etc/xdg/plasma-localerc <<EOF
[Formats]
LANG=de_DE.UTF-8

[Translations]
LANGUAGE=de
EOF
  # Deutsche Tastaturbelegung in Plasma für alle Benutzer
  cat > /etc/xdg/kxkbrc <<EOF
[Layout]
LayoutList=de
Use=true
VariantList=nodeadkeys
EOF

  # -------------------------------------------------------------------
  # 10/12 [OPTIONAL] Firefox: Startseite google.de, keine Begrüßung.
  # Gilt systemweit für alle Benutzer (Firefox-Richtlinie).
  # Fehlt dieser Abschnitt: Firefox zeigt nach jedem Reset die
  # Begrüßungsseiten und startet mit der Fedora-Startseite.
  # Kontrolle in Firefox über die Adresse about:policies
  # -------------------------------------------------------------------
  echo "10/12 Firefox einrichten ..."
  mkdir -p /etc/firefox/policies
  cat > /etc/firefox/policies/policies.json <<'EOF'
{
  "policies": {
    "Homepage": {
      "URL": "https://www.google.de",
      "StartPage": "homepage",
      "Locked": false
    },
    "OverrideFirstRunPage": "",
    "OverridePostUpdatePage": "",
    "DontCheckDefaultBrowser": true,
    "DisableProfileImport": true,
    "DisableTelemetry": true,
    "DisableFirefoxStudies": true,
    "SkipTermsOfUse": true,
    "UserMessaging": {
      "WhatsNew": false,
      "ExtensionRecommendations": false,
      "FeatureRecommendations": false,
      "UrlbarInterventions": false,
      "SkipOnboarding": true,
      "MoreFromMozilla": false,
      "Locked": false
    }
  }
}
EOF

  # -------------------------------------------------------------------
  # 11/12 [OPTIONAL] WLAN für alle Benutzer speichern. Wird nur gefragt,
  # leer lassen überspringt den Schritt.
  # Fehlt dieser Abschnitt: Der Schüler muss das WLAN-Passwort nach
  # jedem Reset neu eingeben.
  # -------------------------------------------------------------------
  echo "11/12 WLAN für alle Benutzer speichern (optional) ..."
  read -rp "      WLAN-Name (leer lassen = überspringen): " SSID
  if [ -n "$SSID" ]; then
    read -rsp "      WLAN-Passwort: " WPW; echo
    if nmcli device wifi connect "$SSID" password "$WPW"; then
      # Verbindung für alle Benutzer freigeben
      nmcli connection modify "$SSID" connection.permissions "" || true
    else
      echo "      WLAN-Verbindung fehlgeschlagen - bitte später in den Systemeinstellungen einrichten."
    fi
    # Das Verbinden trennt kurz die bestehende Verbindung. Schritt 12
    # braucht Internet, deshalb erst weiter, wenn es wieder erreichbar ist.
    if ! warte_auf_internet; then
      # Einstellungen aus Schritt 5 trotzdem einlesen, damit der Reset greift
      systemctl daemon-reload
      echo
      echo "ABBRUCH: Nach dem WLAN-Wechsel besteht keine Internetverbindung."
      echo "Schritte 1 bis 11 sind erledigt, Schritt 12 (Surface-Kernel) fehlt."
      echo
      echo "So geht's weiter:"
      echo "  1. WLAN unten rechts über das Netzwerk-Symbol verbinden."
      echo "  2. Skript erneut starten (bei der WLAN-Frage einfach Enter drücken)."
      exit 1
    fi
  fi

  # -------------------------------------------------------------------
  # 12/12 [OPTIONAL] Surface-Kernel und Stabilisierung des Type Covers.
  # a) USB-Energiesparen aus (usbcore.autosuspend=-1): Das Type Cover ist
  #    intern ein USB-Gerät und reagiert sonst nach einer Pause manchmal
  #    nicht mehr. Kostet etwas Akkulaufzeit.
  # b) Surface-Kernel (github.com/linux-surface): bessere Treiber für
  #    Type Cover, Touch und Pen. Nur bei AUSGESCHALTETEM Secure Boot,
  #    sonst startet das Gerät nicht. Bei Secure Boot an wird er übersprungen.
  # Fehlt dieser Abschnitt: Standard-Fedora-Kernel, gelegentliche
  # Aussetzer von Tastatur/Touchpad möglich.
  # -------------------------------------------------------------------
  echo "12/12 Surface-Kernel und Type-Cover-Stabilisierung ..."
  SB_DATEI=/sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
  if [ -r "$SB_DATEI" ]; then
    [ "$(od -An -t u1 -j4 -N1 "$SB_DATEI" | tr -d ' ')" = "1" ] && SB="an" || SB="aus"
  elif [ -f /root/.secureboot-status ]; then
    SB=$(cat /root/.secureboot-status)
  else
    SB="unbekannt"
  fi
  echo "      Secure Boot: $SB"
  if [ "$SB" = "aus" ]; then
    if curl -fsSL https://pkg.surfacelinux.com/fedora/linux-surface.repo \
         -o /etc/yum.repos.d/linux-surface.repo; then
      # kernel-surface: Kernel mit Surface-Treibern
      # iptsd: Touch- und Pen-Dienst
      # libwacom-surface: Pen-/Touch-Beschreibungen (ersetzt libwacom)
      dnf install -y --allowerasing kernel-surface iptsd libwacom-surface \
        || echo "      WARNUNG: Surface-Kernel nicht installiert, Standard-Kernel bleibt."
      # hält den Surface-Kernel nach Fedora-Updates als Standard
      dnf install -y kernel-surface-default-watchdog || true
    else
      echo "      WARNUNG: linux-surface-Paketquelle nicht erreichbar."
    fi
  else
    echo "      Surface-Kernel übersprungen (Secure Boot nicht sicher aus)."
  fi
  # Kernel-Parameter für alle vorhandenen und künftigen Kernel setzen
  grubby --update-kernel=ALL --args="usbcore.autosuspend=-1" || true
  if [ -f /etc/default/grub ] && ! grep -q "usbcore.autosuspend" /etc/default/grub; then
    sed -i 's/^GRUB_CMDLINE_LINUX="/&usbcore.autosuspend=-1 /' /etc/default/grub
  fi

  # [PFLICHT] systemd die neuen Einstellungen aus Schritt 5 einlesen lassen
  systemctl daemon-reload

  echo
  echo "Fertig. Jetzt neu starten:  sudo reboot"
  echo "Nach dem Neustart wird '$BENUTZER' automatisch angemeldet."
  echo "Passwort für eine erneute Anmeldung nach dem Abmelden: $PASSWORT"
}

# =====================================================================
#  Teil B: Vorlage speichern  (Aufruf mit "vorlage")
#  Übernimmt den aktuellen Desktop des Schülers (Symbole, Taskleiste,
#  Browser-Startseite …) als neue Vorlage für alle künftigen Sitzungen.
#  Vorher im Browser Verlauf löschen und keine Konten anmelden!
# =====================================================================
vorlage() {
  # Der Schüler muss gerade angemeldet sein, sonst ist sein Home leer
  if ! loginctl list-users --no-legend | grep -qw "$BENUTZER"; then
    echo "'$BENUTZER' ist nicht angemeldet."
    echo "So geht's: als '$BENUTZER' den Desktop einrichten, dann im Startmenü"
    echo "'Benutzer wechseln' wählen, als admin anmelden und diesen Befehl erneut ausführen."
    exit 1
  fi
  # Alte Vorlage ersetzen durch eine Kopie des aktuellen Homes
  rm -rf "$VORLAGE"
  mkdir -p "$VORLAGE"
  cp -a "/home/$BENUTZER/." "$VORLAGE"/
  # Zwischenspeicher und Papierkorb nicht mit übernehmen
  rm -rf "$VORLAGE/.cache" "$VORLAGE/.local/share/Trash"
  echo "Vorlage gespeichert. Ab der nächsten Anmeldung startet '$BENUTZER' mit diesem Desktop."
}

# =====================================================================
#  Teil C: Abschalten  (Aufruf mit "entfernen")
#  Schaltet Reset und Auto-Login ab. Account, Vorlage, Sprache und die
#  entfernten Pakete bleiben unverändert.
# =====================================================================
entfernen() {
  # Kopplung des Resets an die Anmeldung entfernen
  UIDNR=$(id -u "$BENUTZER" 2>/dev/null || echo "")
  [ -n "$UIDNR" ] && rm -rf "/etc/systemd/system/user@${UIDNR}.service.d"
  # Abmelde-Einstellung, Reset-Skript und Auto-Login löschen
  rm -f /etc/systemd/logind.conf.d/schueler.conf "$RESET" /etc/plasmalogin.conf
  # Kennwortsperre aufheben
  rm -f /etc/polkit-1/rules.d/50-benutzer-kennwort.rules /etc/kde5rc
  chage -m 0 -M 99999 "$BENUTZER" 2>/dev/null || true
  systemctl daemon-reload
  echo "Reset, Auto-Login und Kennwortsperre sind abgeschaltet. Der Account '$BENUTZER' bleibt bestehen."
  echo "Account komplett löschen (optional):  sudo userdel -r $BENUTZER"
}

# =====================================================================
# [PFLICHT] Auswahl, welcher Teil ausgeführt wird
# =====================================================================
case "${1:-einrichten}" in
  einrichten) einrichten ;;
  vorlage)    vorlage ;;
  entfernen)  entfernen ;;
  *) echo "Unbekannt: $1  (erlaubt: einrichten | vorlage | entfernen)"; exit 1 ;;
esac
