Как сопоставить шаблон и заменить все файлы в каталоге, используя соленые состояния? - PullRequest
0 голосов
/ 26 декабря 2018

Состояние стека соли для рекурсивного цикла по каталогу

Добавлены одиночные и множественные кавычки, которые не помогли.Я не хочу указывать каждый файл для замены файла.Я хочу зациклить все файлы в каталоге dir для замены.

{% for file in "/path/{{ to }}/dir" %}
  {{ file }}:
    file.replace:
      - name: {{ file }}
      - pattern: /from/
      - repl: /{{ to }}/
      - backup: False
{% endfor %}

Я пробовал одинарные и множественные кавычки, но вижу ошибку:

":"ERROR: Minions returned with non-zero exit code
d01xyz011:
Data failed to compile:
----------
Rendering SLS 'base:projects.xyz.p-ser' failed: Jinja syntax error: unexpected '/'; line 140

Можем ли мы указать каталог в цикле FORгде у нас есть несколько файлов для замены?Есть ли дополнительный код, который мне не хватает в вышеупомянутом цикле FOR?Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 15 января 2019

Вы можете указать список файлов, а затем выполнить цикл for, например

{% set file_list = ['foo', 'bar', 'baz'] %}
{% for f in file_list %}
...
{% endfor %}

Но я не думаю, что {% for file in "/path/{{ to }}/dir" %} сделает то, что вы думаете, он сделает: он не создастсписок файлов в каталоге, вам нужно будет создать этот список в другом месте или другим способом, а затем передать его в цикл for в Jinja.

...