Si vous écrivez des scripts pour analyser les commandes de Vagrant, il est conseillé d'analyser une sortie conviviale pour la machine ( --machine-readable
) qui est plus cohérent.
Le format est le suivant :
timestamp,target,type,data...
afin que vous puissiez l'importer en tant que fichier CSV, puisqu'il est séparé par des virgules.
Avec Shell, il est probablement plus difficile de l'analyser, par exemple :
for id in $(vagrant global-status --machine-readable | cut -d, -f5 | grep -B3 running | egrep -o "[0-9a-f]{7}"); do
vagrant suspend $id;
done
Voir : Vagrant - Sortie lisible par une machine
Cependant, je trouve qu'il est plus facile d'analyser la sortie standard, par ex.
while read id name provider state path; do
[ "$state" = "running" ] && vagrant suspend $id;
done < <(vagrant global-status)
Btw. Théoriquement vagrant
La commande doit accepter une expression régulière pour la liste des VMs à suspendre selon cette GH poste par exemple :
vagrant suspend '*'
mais cela ne fonctionne pas et il y a une bogue n° 7221 qui est en attente afin de la réparer.
Billets GitHub connexes :