我从YAML配置文件提取问题:
致命错误:在解析块映射时;预期<block end>,但找到了块入口
尽管我已经尝试并提供了许多在线YAML验证器,但我还是想从命令行验证我的YAML文件并将其集成到我的持续集成管道中。
如何在命令行上验证YAML文件的语法?
我从YAML配置文件提取问题:
致命错误:在解析块映射时;预期<block end>,但找到了块入口
尽管我已经尝试并提供了许多在线YAML验证器,但我还是想从命令行验证我的YAML文件并将其集成到我的持续集成管道中。
如何在命令行上验证YAML文件的语法?
python -c "from yaml import load, Loader; load(open('.travis.yml'), Loader=Loader)"
Answers:
使用基本的Ruby安装,这应该可以工作:
ruby -ryaml -e "p YAML.load(STDIN.read)" < data.yaml
Python版本(thx @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])"
可以在after之后传递文件名,而无需直接编辑代码段。
假设您正在使用的服务器上已安装了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
要更正.yaml
文件,我建议使用工具yamllint。可以从本地控制台轻松启动。
该软件包yamllint
可用于所有主要操作系统。
它可以从系统的软件包源安装。(例如sudo apt-get install yamllint
)。
请参阅文档以快速启动和安装。
或替代安装(免费)的Eclipse IDE,然后安装YEdit yaml编辑器,并通过语法突出显示,错误标志和大纲视图查看yaml。一次安装费用对我来说效果很好。
travis lint .travis.yml