2010-10-19 28 views
30

Tôi gặp vấn đề kéo từ một file YAML config:Làm cách nào để xác thực tệp YAML của tôi từ dòng lệnh?

Fatal error: while parsing a block mapping; expected <block end>, but found BlockEntry

Trong khi có rất nhiều xác nhận YAML trực tuyến, mà tôi đã cố gắng và đã giúp, tôi muốn xác nhận một file YAML tôi từ dòng lệnh và tích hợp điều này vào đường ống tích hợp liên tục của tôi.

Làm cách nào để xác thực cú pháp của tệp YAML trên dòng lệnh?

+3

Hãy thử: 'travis lint .travis.yml' – kenorb

+0

' python -c "từ tải nhập yaml, Trình tải; tải (mở ('. Travis.yml'), Loader = Loader)" ' – Natim

+0

sudo pip install PyYAML sẽ đảm bảo một mô-đun được tải. – cgseller

Trả lời

10

Cho rằng bạn có một perl cài đặt trên máy chủ bạn đang làm việc trên, và nó có một số công cụ YAML cơ bản, bạn có thể sử dụng ...

perl -MYAML -e 'use YAML;YAML::LoadFile("./file.yaml")' 

Cần lưu ý rằng điều này sẽ được nghiêm ngặt trong nó giải thích của tập tin, nhưng hữu ích.

+1

Không thể định vị YAML.pm – Natim

+1

/usr/bin/perl -MCPAN -e 'cài đặt YAML' –

52

Với cài đặt cơ bản của Ruby này nên làm việc

ruby -e "require 'yaml';puts YAML.load_file('./data.yaml')" 
+0

Nếu bạn loại bỏ 'đặt y' từ cuối này, bạn sẽ nhận được một hành vi UNIX chuẩn hơn: nếu tệp là hợp lệ thì không có gì sẽ được in và nếu nó không hợp lệ thì bạn sẽ thấy một dấu vết ngoại lệ và ngăn xếp. – bdesham

+0

... và nếu bạn loại bỏ 'đặt y' bạn cũng có thể loại bỏ' y = '. – bdesham

+0

Cảm ơn, điều đó chắc chắn tốt hơn và ngắn hơn. – Tombart

-1

Hoặc xen kẽ cài đặt (miễn phí) Eclipse IDE và sau đó YEdit biên tập yaml và xem yaml của bạn với cú pháp tô, cờ báo lỗi, và phác thảo quan điểm. Chi phí thiết lập một lần hoạt động khá tốt đối với tôi.

Các vấn đề liên quan