Je rencontre des problèmes pour extraire un fichier de configuration YAML:
Erreur fatale: lors de l'analyse d'un mappage de bloc; attendu <fin de bloc>, mais entrée de bloc trouvée
Bien qu'il existe de nombreux validateurs YAML en ligne, que j'ai essayés et que j'ai aidés, j'aimerais valider mes fichiers YAML à partir de la ligne de commande et les intégrer dans mon pipeline d'intégration continue.
Comment puis-je valider la syntaxe d'un fichier YAML sur la ligne de commande?
travis lint .travis.yml
python -c "from yaml import load, Loader; load(open('.travis.yml'), Loader=Loader)"
Réponses:
Avec l'installation de base de Ruby, cela devrait fonctionner:
ruby -ryaml -e "p YAML.load(STDIN.read)" < data.yaml
Version Python (merci @Murphy):
pip install pyyaml python -c 'import yaml, sys; print(yaml.safe_load(sys.stdin))' < data.yaml
la source
puts y
de la fin, vous obtenez un comportement UNIX plus standard: si le fichier est valide, rien ne sera imprimé, et s'il n'est pas valide, vous verrez une exception et une trace de pile.puts y
vous pouvez également vous débarrasser duy=
.puts
. Le code de retour est simplement0
valide, sinon nul et vous obtiendrez une trace de pile d'exceptions. Réduit le bruit sur la sortie CLI si vous la regardez même.ruby -e "require 'yaml';puts YAML.load_file(ARGV[0])"
vous pouvez ensuite transmettre le nom de fichier après, au lieu de devoir modifier directement l'extrait de code.Étant donné que vous avez une installation perl sur le serveur sur lequel vous travaillez, et qu'il dispose de certains des outils de base de YAML, vous pouvez utiliser ...
perl -MYAML -e 'use YAML;YAML::LoadFile("./file.yaml")'
Il convient de noter que ce sera strict dans son interprétation du fichier, mais utile.
la source
Can't locate object method "install" via package "YAML" at -e line 1.
perl -MCPAN -e 'shell'
puis à la ligne de commande faireinstall YAML
Vous pouvez utiliser yamllint . Il est disponible dans Homebrew, etc. Il peut être utilisé pour la validation de la syntaxe ainsi que pour le linting.
la source
Pour corriger vos
.yaml
fichiers, je recommande l'outil yamllint. Il peut être lancé facilement depuis la console locale.Le package
yamllint
est disponible pour tous les principaux systèmes d'exploitation.Il peut être installé à partir des sources de paquets du système. (par exemple
sudo apt-get install yamllint
). Consultez la documentation pour un démarrage et une installation rapides.la source
Ou bien installé (gratuit) Eclipse IDE, puis l'éditeur YEdit yaml et voyez votre yaml avec la coloration syntaxique, les indicateurs d'erreur et les vues de contour. Le coût d'installation unique fonctionne plutôt bien pour moi.
la source