YAML 구성 파일에서 가져 오는 데 문제가 있습니다.
치명적인 오류 : 블록 매핑을 구문 분석하는 동안; 예상되는 <블록 끝>이지만 블록 항목을 찾았습니다.
내가 시도하고 도움을 준 온라인 YAML 유효성 검사기가 많이 있지만 명령 줄에서 내 YAML 파일의 유효성을 검사하고이를 지속적인 통합 파이프 라인에 통합하고 싶습니다.
명령 줄에서 YAML 파일의 구문을 검증하려면 어떻게해야합니까?
YAML 구성 파일에서 가져 오는 데 문제가 있습니다.
치명적인 오류 : 블록 매핑을 구문 분석하는 동안; 예상되는 <블록 끝>이지만 블록 항목을 찾았습니다.
내가 시도하고 도움을 준 온라인 YAML 유효성 검사기가 많이 있지만 명령 줄에서 내 YAML 파일의 유효성을 검사하고이를 지속적인 통합 파이프 라인에 통합하고 싶습니다.
명령 줄에서 YAML 파일의 구문을 검증하려면 어떻게해야합니까?
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
유효 하면 간단 하고, 그렇지 않으면 0이 아니므로 예외 스택 추적을 받게됩니다. CLI 출력을보고있는 경우에도 노이즈를 줄입니다.
ruby -e "require 'yaml';puts YAML.load_file(ARGV[0])"
스 니펫을 직접 편집 할 필요없이 뒤에 파일 이름을 전달할 수 있습니다.
작업중인 서버에 펄이 설치되어 있고 기본 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
.
빠른 시작 및 설치는 설명서를 참조하십시오.
travis lint .travis.yml