Introducción

Parte 4

Configuración estructurada: cambia el valor, no la puntuación

El editor de texto muestra la fuente; el comando de formato muestra el modolo de datos. Aprende a cambiar de vista según la intención.

Por qué una herramienta específica puede ser más simple

Si en un archivo grande solo necesitas cambiar application.debug, nombrar la ruta lógica puede ser más claro que localizar la sección y vigilar comas, llaves o separadores.

Un mismo ritmo para varios formatos

Los módulos comparten una gramática parecida: abrir, leer una clave, buscar, escribir con :, borrar, validar con -c o serializar con dump. $ puede representar después el archivo activo.

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: secciones y valores simples

INI agrupa pares clave/valor en secciones. Las rutas con puntos permiten llegar al valor lógico sin recorrer todo el archivo.

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

JSON: objetos, arrays y tipos

Para este ejercicio, abre project/config/app.json con code -n, pega la base {} que aparece abajo, guarda el archivo y solo entonces ejecuta los comandos json. El editor estructurado necesita un JSON válido desde el principio.

JSON aparece en APIs, metadatos y configuración. Cambiar por ruta evita errores accidentales de comas o llaves, y -c ofrece una validación explícita.

Empieza el archivo con esto
{}
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 y properties

YAML se apoya en la indentación, TOML en tablas y tipos, XML en elementos y atributos, y conf/properties en familias clave/valor. lil unifica tareas cotidianas sin fingir que los formatos son iguales.

INIsecciones + clave/valorConfiguración compacta
JSONobjetos + arraysAPIs y metadatos
YAMLindentación + mapasDespliegue
TOMLtablas + tiposHerramientas y apps
XMLelementos + atributosDocumentos estructurados
conf / propertiesfamilias clave/valorServidores y aplicaciones

Valida; usa `dump` cuando necesites la fuente

-c valida el documento; dump devuelve una representación serializada. Las escrituras estructuradas pueden normalizar formato u comentarios; si la forma exacta del texto importa, usa edit o code.

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

Cuándo volver a `code`

Usa módulos de formato para valores, búsqueda y validación. Vuelve a code cuando importen comentarios, maquetación exacta o características avanzadas del formato.

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

Los cambios de configuración son excelentes scripts

Una secuencia verificada de ajustes puede guardarse como documentación ejecutable. En otro proyecto, revísala, cambia los valores necesarios y reproduce el entorno.

Guárdalo como script

Guárdalo como configure-app.lil: realiza dos cambios INI concretos y valida el documento. No pongas secretos en scripts portátiles sin un flujo protegido diseñado para ello.

#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