Bash:
Travailler avec YAML

Comment :

Travailler directement avec YAML en Bash requiert un peu d’ingéniosité puisque Bash n’a pas de support intégré pour l’analyse de YAML. Cependant, vous pouvez utiliser des outils externes comme yq (un processeur YAML en ligne de commande léger et portable) pour interagir efficacement avec les fichiers YAML. Passons en revue quelques opérations courantes :

Installer yq :

Avant de plonger dans les exemples, assurez-vous d’avoir yq installé. Vous pouvez généralement l’installer à partir de votre gestionnaire de paquets, par exemple, sur Ubuntu :

sudo apt-get install yq

Ou vous pouvez le télécharger directement depuis son dépôt GitHub.

Lire une valeur :

Considérez que vous avez un fichier nommé config.yaml avec le contenu suivant :

database:
  host: localhost
  port: 5432
user:
  name: admin
  password: secret

Pour lire l’hôte de la base de données, vous pouvez utiliser yq comme suit :

yq e '.database.host' config.yaml

Exemple de sortie :

localhost

Mettre à jour une valeur :

Pour mettre à jour le nom de l’utilisateur dans config.yaml, utilisez la commande yq eval avec l’option -i (sur place) :

yq e '.user.name = "newadmin"' -i config.yaml

Vérifiez le changement avec :

yq e '.user.name' config.yaml

Exemple de sortie :

newadmin

Ajouter un nouvel élément :

Pour ajouter un nouvel élément sous la section de la base de données, comme un nouveau champ timeout :

yq e '.database.timeout = 30' -i config.yaml

Vérifier le contenu du fichier confirmera l’ajout.

Supprimer un élément :

Pour supprimer le mot de passe sous utilisateur :

yq e 'del(.user.password)' -i config.yaml

Cette opération supprimera le champ mot de passe de la configuration.

Rappelez-vous, yq est un outil puissant et a beaucoup plus de capacités, y compris la conversion de YAML en JSON, la fusion de fichiers, et même des manipulations plus complexes. Référez-vous à la documentation de yq pour une exploration plus approfondie.