Você estaria disposto a criar um arquivo temporário normalizado e compará-lo com isso?
sed 's/{{ \(.*\) }}//' program.conf.jinja > temp && diff program.conf temp
Meus colegas estão mantendo um arquivo de configuração, que é implantado em ambientes de produção / teste / preparação pelo SaltStack. Eu estou mantendo este arquivo usando diff para ver o que mudou e codificar o snippet jinja apropriado.
O nome do arquivo é program.conf
e a versão do SaltStack é program.conf.jinja
.
program.conf
tem linhas do formulário:
variable = "value"
program.conf.jinja
é:
variable = "{{ value }}"
Do ponto de vista do diff, eles são diferentes. Mas do meu ponto de vista, eles são iguais. Eu estou procurando um recurso pragma-like onde eu posso dizer marcar o arquivo jinja da seguinte forma que eu não vou conseguir isso na saída do diff:
variable = "{{ value }}" # pragma-same: variable = "value"
Eu também usarei esse utilitário para gerar alertas para forçar as pessoas a atualizar o arquivo jinja para qualquer variável ausente.
variable = "value"
às vezes resolve-se para estrofes mais complexas como:
{% if pillar.get(...) %}
variable = {{ value }}
{% else %}
variable = {{ value + 2 }}
{% endif %}
Você estaria disposto a criar um arquivo temporário normalizado e compará-lo com isso?
sed 's/{{ \(.*\) }}//' program.conf.jinja > temp && diff program.conf temp
Tags diff