У меня возникают проблемы с извлечением из файла конфигурации YAML:
Неустранимая ошибка: при разборе отображения блока; ожидается <конец блока>, но найдена запись в блоке
Несмотря на то, что существует множество онлайн-валидаторов YAML, которые я пробовал и помог, я бы хотел проверить свои файлы YAML из командной строки и интегрировать их в свой конвейер непрерывной интеграции.
Как я могу проверить синтаксис файла YAML в командной строке?
travis lint .travis.yml
python -c "from yaml import load, Loader; load(open('.travis.yml'), Loader=Loader)"
Ответы:
При базовой установке Ruby это должно работать:
ruby -ryaml -e "p YAML.load(STDIN.read)" < data.yaml
Версия Python (спасибо @Murphy):
pip install pyyaml python -c 'import yaml, sys; print(yaml.safe_load(sys.stdin))' < data.yaml
источник
puts y
с конца этого, вы получите более стандартное поведение UNIX: если файл действительный, то ничего не будет напечатано, а если он недействителен, вы увидите исключение и трассировку стека.puts y
вы также можете избавиться отy=
.puts
. Код возврата просто,0
если он действителен, иначе ненулевой, и вы получите трассировку стека исключений. Уменьшает шум на выходе CLI, если вы даже смотрите на него.ruby -e "require 'yaml';puts YAML.load_file(ARGV[0])"
вы можете передать имя файла после, вместо того, чтобы редактировать фрагмент напрямую.Учитывая, что у вас установлен Perl на сервере, над которым вы работаете, и у него есть некоторые из основных инструментов YAML, вы можете использовать ...
perl -MYAML -e 'use YAML;YAML::LoadFile("./file.yaml")'
Следует отметить, что это будет строгое толкование файла, но полезно.
источник
Can't locate object method "install" via package "YAML" at -e line 1.
perl -MCPAN -e 'shell'
а затем в командной строке сделайтеinstall YAML
Вы можете использовать yamllint . Он доступен в Homebrew и т.д. Его можно использовать для проверки синтаксиса, а также для линтинга.
источник
Чтобы исправить ваши
.yaml
файлы, я рекомендую инструмент yamllint. Его можно легко запустить с локальной консоли.Пакет
yamllint
доступен для всех основных операционных систем.Его можно установить из исходников пакетов системы. (например
sudo apt-get install yamllint
). См. Документацию для быстрого запуска и установки.источник
Или поочередно установите (бесплатно) Eclipse IDE, а затем YEdit yaml editor и посмотрите свой yaml с подсветкой синтаксиса, флагами ошибок и представлениями схемы. Единовременная стоимость установки мне подходит.
источник