- #}
- {#- Get the `tplroot` from `tpldir` #}
- {%- set tplroot = tpldir.split('/')[0] %}
- {%- set path_prefix = salt['config.get'](tplroot ~ ':tofs:path_prefix', tplroot) %}
- {%- set files_dir = salt['config.get'](tplroot ~ ':tofs:dirs:files', 'files') %}
- {%- set files_switch_list = salt['config.get'](
- tplroot ~ ':tofs:files_switch',
- default_files_switch
- ) %}
- {#- Lookup source_files (v2), files (v1), or fallback to an empty list #}
- {%- set src_files = salt['config.get'](
- tplroot ~ ':tofs:source_files:' ~ lookup,
- salt['config.get'](tplroot ~ ':tofs:files:' ~ lookup, [])
- ) %}
- {#- Append the default source_files #}
- {%- set src_files = src_files + source_files %}
- {#- Only add to [''] when supporting older TOFS implementations #}
- {%- set path_prefix_exts = [''] %}
- {%- if use_subpath and tplroot != tpldir %}
- {#- Walk directory tree to find {{ files_dir }} #}
- {%- set subpath_parts = tpldir.lstrip(tplroot).lstrip('/').split('/') %}
- {%- for path in subpath_parts %}
- {%- set subpath = subpath_parts[0:loop.index] | join('/') %}
- {%- do path_prefix_exts.append('/' ~ subpath) %}
- {%- endfor %}
- {%- endif %}
- {%- for path_prefix_ext in path_prefix_exts|reverse %}
- {%- set path_prefix_inc_ext = path_prefix ~ path_prefix_ext %}
- {#- For older TOFS implementation, use `files_switch` from the config #}
- {#- Use the default, new method otherwise #}
- {%- set fsl = salt['config.get'](
- tplroot ~ path_prefix_ext|replace('/', ':') ~ ':files_switch',
- files_switch_list
- ) %}
- {#- Append an empty value to evaluate as `default` in the loop below #}
- {%- if '' not in fsl %}
- {%- set fsl = fsl + [''] %}
- {%- endif %}
- {%- for fs in fsl %}
- {%- for src_file in src_files %}
- {%- if fs %}
- {%- set fs_dirs = salt['config.get'](fs, fs) %}
- {%- else %}
- {%- set fs_dirs = salt['config.get'](tplroot ~ ':tofs:dirs:default', 'default') %}
- {%- endif %}
- {#- Force the `config.get` lookup result as a list where necessary #}
- {#- since we need to also handle grains that are lists #}
- {%- if fs_dirs is string %}
- {%- set fs_dirs = [fs_dirs] %}
- {%- endif %}
- {%- for fs_dir in fs_dirs %}
- {%- set url = [
- '- salt:/',
- path_prefix_inc_ext.strip('/'),
- files_dir.strip('/'),
- fs_dir.strip('/'),
- src_file.strip('/'),
- ] | select | join('/') %}
+#}
+{#- Get the `tplroot` from `tpldir` #}
+{%- set tplroot = tpldir.split("/")[0] %}
+{%- set path_prefix = salt["config.get"](tplroot ~ ":tofs:path_prefix", tplroot) %}
+{%- set files_dir = salt["config.get"](tplroot ~ ":tofs:dirs:files", "files") %}
+{%- set files_switch_list = salt["config.get"](
+ tplroot ~ ":tofs:files_switch", default_files_switch
+ ) %}
+{#- Lookup source_files (v2), files (v1), or fallback to an empty list #}
+{%- set src_files = salt["config.get"](
+ tplroot ~ ":tofs:source_files:" ~ lookup,
+ salt["config.get"](tplroot ~ ":tofs:files:" ~ lookup, []),
+ ) %}
+{#- Append the default source_files #}
+{%- set src_files = src_files + source_files %}
+{#- Only add to [""] when supporting older TOFS implementations #}
+{%- set path_prefix_exts = [""] %}
+{%- if use_subpath and tplroot != tpldir %}
+{#- Walk directory tree to find {{ files_dir }} #}
+{%- set subpath_parts = tpldir.lstrip(tplroot).lstrip("/").split("/") %}
+{%- for path in subpath_parts %}
+{%- set subpath = subpath_parts[0 : loop.index] | join("/") %}
+{%- do path_prefix_exts.append("/" ~ subpath) %}
+{%- endfor %}
+{%- endif %}
+{%- for path_prefix_ext in path_prefix_exts | reverse %}
+{%- set path_prefix_inc_ext = path_prefix ~ path_prefix_ext %}
+{#- For older TOFS implementation, use `files_switch` from the config #}
+{#- Use the default, new method otherwise #}
+{%- set fsl = salt["config.get"](
+ tplroot ~ path_prefix_ext | replace("/", ":") ~ ":files_switch",
+ files_switch_list,
+ ) %}
+{#- Append an empty value to evaluate as `default` in the loop below #}
+{%- if "" not in fsl %}
+{%- set fsl = fsl + [""] %}
+{%- endif %}
+{%- for fs in fsl %}
+{%- for src_file in src_files %}
+{%- if fs %}
+{%- set fs_dirs = salt["config.get"](fs, fs) %}
+{%- else %}
+{%- set fs_dirs = salt["config.get"](
+ tplroot ~ ":tofs:dirs:default", "default"
+ ) %}
+{%- endif %}
+{#- Force the `config.get` lookup result as a list where necessary #}
+{#- since we need to also handle grains that are lists #}
+{%- if fs_dirs is string %}
+{%- set fs_dirs = [fs_dirs] %}
+{%- endif %}
+{%- for fs_dir in fs_dirs %}
+{#- strip empty elements by using a select #}
+{%- set url = (
+ [
+ "- salt:/",
+ path_prefix_inc_ext.strip("/"),
+ files_dir.strip("/"),
+ fs_dir.strip("/"),
+ src_file.strip("/"),
+ ]
+ | select
+ | join("/")
+ ) %}