Mam problemy z pobieraniem z pliku konfiguracyjnego YAML:
Błąd krytyczny: podczas analizowania mapowania bloku; oczekiwano <koniec bloku>, ale znaleziono wpis do bloku
Chociaż istnieje wiele walidatorów YAML online, które wypróbowałem i pomogłem, chciałbym zweryfikować moje pliki YAML z wiersza poleceń i zintegrować to z moim potokiem ciągłej integracji.
Jak mogę sprawdzić poprawność składni pliku YAML w wierszu poleceń?
travis lint .travis.yml
python -c "from yaml import load, Loader; load(open('.travis.yml'), Loader=Loader)"
Odpowiedzi:
Z podstawową instalacją Rubiego powinno to działać:
ruby -ryaml -e "p YAML.load(STDIN.read)" < data.yaml
Wersja Pythona (thx @Murphy):
pip install pyyaml python -c 'import yaml, sys; print(yaml.safe_load(sys.stdin))' < data.yaml
źródło
puts y
znak na końcu tego, otrzymasz bardziej standardowe zachowanie UNIX: jeśli plik jest prawidłowy, nic nie zostanie wydrukowane, a jeśli jest nieprawidłowy, zobaczysz wyjątek i ślad stosu.puts y
, możesz również pozbyć sięy=
.puts
. Kod powrotu jest po prostu0
prawidłowy, w przeciwnym razie niezerowy, a otrzymasz ślad stosu wyjątków. Zmniejsza hałas na wyjściu CLI, jeśli nawet na to patrzysz.ruby -e "require 'yaml';puts YAML.load_file(ARGV[0])"
możesz następnie przekazać nazwę pliku po, zamiast bezpośrednio edytować fragment.Biorąc pod uwagę, że masz instalację perla na serwerze, na którym pracujesz, i ma ona niektóre z podstawowych narzędzi YAML, możesz użyć ...
perl -MYAML -e 'use YAML;YAML::LoadFile("./file.yaml")'
Należy zauważyć, że będzie to ścisłe w interpretacji pliku, ale przydatne.
źródło
Can't locate object method "install" via package "YAML" at -e line 1.
perl -MCPAN -e 'shell'
a następnie w wierszu poleceń zróbinstall YAML
Możesz użyć yamllint . Jest dostępny w Homebrew itp. Może być używany do sprawdzania poprawności składni, a także do lintingu.
źródło
Aby poprawić swoje
.yaml
pliki, polecam narzędzie yamllint. Można go łatwo uruchomić z konsoli lokalnej.Pakiet
yamllint
jest dostępny dla wszystkich głównych systemów operacyjnych.Można go zainstalować ze źródeł pakietów systemu. (np
sudo apt-get install yamllint
.). Zobacz dokumentację dotyczącą szybkiego uruchamiania i instalacji.źródło
Lub alternatywnie zainstalowany (darmowy) Eclipse IDE, a następnie edytor yaml YEdit i zobacz swój yaml z podświetlaniem składni, flagami błędów i widokami konspektu. Jednorazowy koszt instalacji działa całkiem nieźle.
źródło