|
- {%- macro files_switch(source_files,
- lookup=None,
- default_files_switch=['id', 'os_family'],
- indent_width=6,
- use_subpath=False) %}
-
-
-
- {%- 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
- ) %}
-
- {%- set src_files = salt['config.get'](
- tplroot ~ ':tofs:source_files:' ~ lookup,
- salt['config.get'](tplroot ~ ':tofs:files:' ~ lookup, [])
- ) %}
-
- {%- set src_files = src_files + source_files %}
-
- {%- set path_prefix_exts = [''] %}
- {%- if use_subpath and tplroot != tpldir %}
-
- {%- 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 %}
-
-
- {%- set fsl = salt['config.get'](
- tplroot ~ path_prefix_ext|replace('/', ':') ~ ':files_switch',
- files_switch_list
- ) %}
-
- {%- if '' not in fsl %}
- {%- do fsl.append('') %}
- {%- 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 %}
-
-
- {%- 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('/') %}
- {{ url | indent(indent_width, true) }}
- {%- endfor %}
- {%- endfor %}
- {%- endfor %}
- {%- endfor %}
- {%- endmacro %}
|