Introduzione

Parte 4

Configurazione strutturata: cambia il valore, non la punteggiatura

L’editor di testo mostra il sorgente; il comando di formato mostra il modello dati. Entrambe le viste servono.

Perché uno strumento specifico può essere più semplice

Se in un file grande devi cambiare soltanto application.debug, indicare il percorso logico è spesso più chiaro che cercare la sezione giusta e controllare virgole, parentesi o separatori.

Un ritmo comune per più formati

I moduli condividono una grammatica simile: aprire, leggere una chiave, cercare, scrivere con :, eliminare, validare con -c o serializzare con dump. $ può poi indicare il file attivo.

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: sezioni e valori semplici

INI raggruppa coppie chiave/valore in sezioni. I percorsi puntati permettono di raggiungere direttamente il valore logico senza scorrere tutto il file.

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

JSON: oggetti, array e tipi

Per questo esercizio apri project/config/app.json con code -n, incolla la base {} mostrata qui sotto, salva il file e solo dopo esegui i comandi json. L’editor strutturato richiede un JSON già valido.

JSON è ovunque in API, metadati e configurazioni. Una modifica per percorso riduce gli errori accidentali di virgole o parentesi; -c offre una validazione esplicita.

Inizia il file così
{}
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 e properties

YAML usa molto l’indentazione, TOML tabelle e tipi, XML elementi e attributi, conf/properties famiglie chiave/valore. lil rende simili le operazioni quotidiane senza fingere che i formati siano identici.

INIsezioni + chiave/valoreImpostazioni compatte
JSONoggetti + arrayAPI e metadati
YAMLindentazione + mappingDeployment
TOMLtabelle + tipiTool e applicazioni
XMLelementi + attributiDocumenti strutturati
conf / propertiesfamiglie chiave/valoreServer e applicazioni

Valida; usa `dump` quando serve il sorgente

-c valida il documento; dump restituisce una rappresentazione serializzata. Le scritture strutturate possono normalizzare formattazione o commenti. Se la forma esatta del testo conta, usa edit o code.

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

Quando tornare a `code`

I moduli di formato sono ideali per valori mirati, ricerca e validazione. code è migliore quando contano commenti, formattazione esatta o funzioni avanzate del formato.

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

Le modifiche di configurazione sono ottimo materiale per script

Una sequenza verificata di impostazioni può diventare documentazione eseguibile. Nel progetto successivo rileggila, cambia i valori necessari e riproduci l’ambiente.

Conservalo come script

Salvalo come configure-app.lil: applica due modifiche INI mirate e valida il documento. Non mettere segreti in script portabili senza un flusso protetto pensato apposta.

#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