Von der Folge zum Ablauf: `.lil` Entscheidungen treffen lassen
Ein lineares Skript ist perfekt, solange die Antwort immer „A, dann B, dann C“ lautet. Sobald geprüft werden muss, ob ein Verzeichnis existiert, ein Pfad wiederverwendet, ein Ergebnis erfasst oder mit verständlichem Grund gestoppt werden soll, ist es ein Ablauf und keine Liste mehr.
Die kleinste Automatisierungssprache verwenden, die zur Aufgabe passt
Eine Datei mit #lil gehört zum linearen Core-Runner: normale Befehle laufen der Reihe nach, und diese Einfachheit ist ein Vorteil. Ideal für Setup-Listen, wiederholbare Diagnosen und kurze Abläufe.
install runhelp runVariablen machen aus kopierten Pfaden benannte Absichten
set root lil-playground gibt einem Pfad eine Rolle. Danach sagen $root, $source und $archive, was Werte bedeuten, statt denselben Literalwert an fünf Stellen zu ändern.
Gute Variablennamen machen ein Skript portabel. Umgebungsspezifische Werte nach oben, Geheimnisse heraus, und einige klare Variablen sind fast immer besser als clevere String-Konstruktionen.
set root lil-playground
set source lil-playground/project
set archive lil-playground/project.zipEine Bedingung sollte eine Annahme schützen
if dir "$source" ist keine Dekoration: Die Prüfung verhindert, dass der Archivschritt still mit dem falschen Ziel arbeitet. Bedingungen sind besonders wertvoll bei Annahmen, deren Fehler sonst destruktiv oder verwirrend wird.
exists, file, empty, eq, ne, ok, fail und command; not kehrt sie um. Verzweigungen so kurz halten, dass Leser weiterhin verstehen, warum jeder Pfad existiert.
if dir "$source"
stat "$source"
else
stop "Project directory is missing"
endAusgabe nur erfassen, wenn die nächste Entscheidung davon abhängt
capture name <command> führt einen normalen lil-Befehl aus und speichert das Klartext-Ergebnis in einer Variablen. Built-ins wie $last, $status, $cwd und $line stellen typischen Ausführungszustand bereit.
Nicht alles capturen, nur weil es möglich ist. Terminaltext ist sinnvoll, wenn er klein und stabil ist; strukturierte Dateien oder dedizierte Formatbefehle sind besser, wenn Daten zwischen Werkzeugen oder über Zeit bestehen sollen.
capture current pwd -s
if empty "$current"
stop "Current directory is unavailable"
endVor der Automatisierung festlegen, was Fehler bedeuten
Standardmäßig stoppt stop beendet den Ablauf mit einem für Menschen verständlichen Grund.
Unbekannte Abläufe zuerst mit -n prüfen. Der Prüflauf validiert und erweitert die Befehle, ohne sie auszuführen; -v zeigt bei einem echten Lauf anschließend die vollständige Ausgabe. Die Vorschau hält Automatisierung nachvollziehbar, bevor sie Änderungen vornimmt.
run workflow.lil -nrun workflow.lil -vGroße Abläufe nach Verantwortung teilen, nicht nach Zeilenzahl
Ein Ablauf kann
.lil ist keine Verschlüsselung: Es schützt Format und Integrität vor versehentlichen Änderungen, nicht Vertraulichkeit oder Urheberschaft.
run -p workflow.lil workflow.packed.lilrun workflow.packed.lilAutomatisierung hat absichtlich weniger Rechte als ein interaktiver Mensch
Interaktive UI-Befehle sind in normalen Abläufen gesperrt; privilegierte nichtinteraktive Befehle wie @command ist in
Diese Reibung ist beabsichtigt. Ein reproduzierbarer Ablauf soll seine Modulabhängigkeiten vor der Ausführung deklarieren und nicht unerwartet Code installieren, nach Geheimnissen fragen oder das Terminal mitten im Lauf zerstören.
Als Skript aufbewahren
Speichern Sie dies als workflow.lil, legen Sie für den Erfolgsweg bei Bedarf lil-playground/project an und führen Sie zuerst
set root lil-playground
set source lil-playground/project
set archive lil-playground/project.zip
if not dir "$root"
stop "lil-playground is missing"
end
if dir "$source"
capture current pwd -s
zip "$source" "$archive" -f
stat "$archive"
else
stop "Project directory is missing"
end