diff --git a/README b/README new file mode 100644 index 0000000..bf39a43 --- /dev/null +++ b/README @@ -0,0 +1,49 @@ +💡 Was macht das? + + Wenn kein Argument übergeben wird, läuft das Skript wie gewohnt durch (main). + + Wenn ein Funktionsname übergeben wird, wird nur diese Funktion mit optionalen Argumenten ausgeführt. + +🔄 Beispielaufrufe + +# Führt das ganze Skript aus (wie bisher) +./miyagi_backup.sh -c /etc/miyagi.conf + +# Führt nur Updates aus +./miyagi_backup.sh run_updates + +# Nur das Backup starten +./miyagi_backup.sh run_pbs_backup + +# Nur Konfiguration schreiben +./miyagi_backup.sh write_zsync_config + +🧱 Optional: Hilfe-Befehl + +Füge am Anfang noch das hinzu: + +if [[ "${1:-}" == "help" ]]; then + echo "Verfügbare Funktionen:" + declare -F | awk '{print " - " $3}' + exit 0 +fi + +Dann kannst du z. B. aufrufen: + +./miyagi_backup.sh help + +Und bekommst alle verfügbaren Funktionsnamen. +📌 Hinweis + +Funktionen wie run_pbs_backup brauchen Variablen aus der Config. Du kannst sicherstellen, dass source "$CONFIG_FILE" immer ausgeführt wird, indem du das nicht in main, sondern außerhalb (oben) stehen lässt – so wie im überarbeiteten Skript oben. +✅ Fazit + +Durch den Wechsel auf ein solches „Funktions-Router“-Muster kannst du dein Skript: + + modular testen + + gezielt einsetzen (z. B. nur Snapshot, nur Update) + + einfacher debuggen + + cron- oder CI-kompatibel machen