Einführung

Teil 4

Strukturierte Konfiguration: den Wert ändern, nicht die Zeichensetzung

Der Texteditor zeigt den Quelltext, der Formatbefehl das Datenmodell. Beide Ansichten haben ihren Platz.

Warum ein Spezialwerkzeug einfacher sein kann

Soll in einer großen Datei nur application.debug geändert werden, ist der logische Pfad oft klarer als die Suche nach der richtigen Stelle samt Kommas, Klammern oder Abschnitten.

Ein Rhythmus für mehrere Formate

Die Formatmodule teilen eine ähnliche Grammatik: öffnen, Schlüssel lesen, suchen, mit : schreiben, löschen, mit -c prüfen oder mit dump serialisierten Text ausgeben. $ kann danach den aktiven Dateipfad ersetzen.

install md mf code ini json xml yml toml conf properties
md lil-playground/project/config
mf lil-playground/project/config/app.ini
cd lil-playground
ini project/config/app.ini
ini $ -w application.name : "lil playground"
ini $ application.name
ini $ -c

INI: Abschnitte und einfache Werte

INI gruppiert Schlüssel/Wert-Paare in Abschnitten. Punktpfade adressieren einen logischen Wert direkt, ohne die gesamte Datei durchscrollen zu müssen.

ini project/config/app.ini
ini $ -w application.debug : true
ini $ application.debug
ini $ -f "application*" -k

JSON: Objekte, Arrays und Typen

Öffne für dieses Beispiel project/config/app.json mit code -n, füge die unten gezeigte Vorlage {} ein, speichere sie und führe erst danach die json-Befehle aus. Der strukturierte Editor erwartet bereits gültiges JSON.

JSON ist in APIs, Metadaten und App-Konfiguration allgegenwärtig. Pfadbasierte Änderungen vermeiden versehentliche Komma- oder Klammerfehler; -c prüft das Ergebnis.

Beginnen Sie die Datei damit
{}
code project/config/app.json -n
json project/config/app.json
json $ -w limits.history : 100
json $ limits.history
json $ -c

YAML, TOML, XML, conf und properties

YAML arbeitet stark mit Einrückung, TOML mit Tabellen und Typen, XML mit Elementen und Attributen, conf/properties meist mit Schlüssel/Wert-Familien. lil bietet eine ähnliche Alltagsoberfläche, behauptet aber nicht, die Formate seien identisch.

INIAbschnitte + Schlüssel/WertKompakte Einstellungen
JSONObjekte + ArraysAPIs und Metadaten
YAMLEinrückung + MappingsDeployment-Konfiguration
TOMLTabellen + TypenTool-Konfiguration
XMLElemente + AttributeStrukturierte Dokumente
conf / propertiesSchlüssel/Wert-FamilienServer- und App-Einstellungen

Validieren und nur bei Bedarf dumpen

-c prüft das Dokument; dump zeigt eine serialisierte Quellform. Strukturierte Schreibvorgänge können Formatierung oder Kommentare normalisieren. Wenn die genaue Textgestalt wichtig ist, verwenden Sie edit oder code.

json $ -c
json dump $
ini dump project/config/app.ini

Wann zurück zu `code`

Formatmodule sind für gezielte Werte, Suche und Prüfung ideal. code ist besser, wenn Kommentare, exakte Formatierung oder fortgeschrittene Formatmerkmale wichtig sind.

code project/config/app.ini -ini
code project/config/app.json -json

Konfigurationsänderungen eignen sich hervorragend für Skripte

Eine geprüfte Folge von Einstellungen kann als ausführbare Dokumentation gespeichert werden. Auf dem nächsten Projekt Werte anpassen, Skript prüfen und dieselbe Umgebung reproduzieren.

Als Skript aufbewahren

Als configure-app.lil speichern. Zwei gezielte INI-Änderungen werden gesetzt und anschließend geprüft; Geheimnisse gehören nicht unbedacht in portable Skripte.

#lil
@install md mf ini json
md lil-playground/project/config
mf lil-playground/project/config/app.ini
cd lil-playground
ini project/config/app.ini
ini $ -w application.debug : true
ini $ -w application.name : "lil playground"
ini $ -c