Estou tendo problemas para extrair de um arquivo de configuração YAML:
Erro fatal: ao analisar um mapeamento de bloco; esperado <block end>, mas foi encontrada entrada de bloco
Embora haja muitos validadores YAML on-line, que experimentei e ajudei, gostaria de validar meus arquivos YAML a partir da linha de comando e integrá-los ao meu pipeline de integração contínua.
Como posso validar a sintaxe de um arquivo YAML na linha de comando?
travis lint .travis.yml
python -c "from yaml import load, Loader; load(open('.travis.yml'), Loader=Loader)"
Respostas:
Com a instalação básica do Ruby, isso deve funcionar:
ruby -ryaml -e "p YAML.load(STDIN.read)" < data.yaml
Versão Python (thx @Murphy):
pip install pyyaml python -c 'import yaml, sys; print(yaml.safe_load(sys.stdin))' < data.yaml
fonte
puts y
do final disso, obterá um comportamento UNIX mais padrão: se o arquivo for válido, nada será impresso e, se for inválido, você verá uma exceção e um rastreamento de pilha.puts y
você também pode se livrar doy=
.puts
. O código de retorno é simplesmente0
se for válido, caso contrário, diferente de zero e você obterá um rastreamento de pilha de exceção. Reduz o ruído na saída CLI, mesmo se você estiver olhando para ela.ruby -e "require 'yaml';puts YAML.load_file(ARGV[0])"
poderá então passar o nome do arquivo depois, em vez de precisar editar o snippet diretamente.Dado que você tem uma instalação perl no servidor em que está trabalhando, e ele tem algumas das ferramentas básicas de YAML, você pode usar ...
perl -MYAML -e 'use YAML;YAML::LoadFile("./file.yaml")'
Deve-se notar que isso será estrito na interpretação do arquivo, mas útil.
fonte
Can't locate object method "install" via package "YAML" at -e line 1.
perl -MCPAN -e 'shell'
e então na linha de comandoinstall YAML
Você pode usar o yamllint . Está disponível no Homebrew, etc. Pode ser usado para validação de sintaxe e também para linting.
fonte
Para corrigir seus
.yaml
arquivos eu recomendo a ferramenta yamllint. Ele pode ser iniciado facilmente a partir do console local.O pacote
yamllint
está disponível para todos os principais sistemas operacionais.É instalável a partir das fontes de pacotes do sistema. (por exemplo
sudo apt-get install yamllint
). Consulte a documentação para um início rápido e instalação.fonte
Ou instale alternativamente (grátis) Eclipse IDE e, em seguida, YEdit yaml editor e veja seu yaml com destaque de sintaxe, sinalizadores de erro e visualizações de estrutura de tópicos. O custo de configuração única funciona muito bem para mim.
fonte