# -*- coding: utf-8 -*- # vim: ft=jinja {#- Get the `tplroot` from `tpldir` #} {%- set tplroot = tpldir.split('/')[0] %} {#- Start imports as #} {%- import_yaml tplroot ~ "/defaults.yaml" as default_settings %} {%- import_yaml tplroot ~ "/osarchmap.yaml" as osarchmap %} {%- import_yaml tplroot ~ "/osfamilymap.yaml" as osfamilymap %} {%- import_yaml tplroot ~ "/osmap.yaml" as osmap %} {%- import_yaml tplroot ~ "/osfingermap.yaml" as osfingermap %} {#- Retrieve the config dict only once #} {%- set _config = salt['config.get'](tplroot, default={}) %} {%- set defaults = salt['grains.filter_by']( default_settings, default=tplroot, merge=salt['grains.filter_by']( osarchmap, grain='osarch', merge=salt['grains.filter_by']( osfamilymap, grain='os_family', merge=salt['grains.filter_by']( osmap, grain='os', merge=salt['grains.filter_by']( osfingermap, grain='osfinger', merge=salt['grains.filter_by']( _config, default='lookup' ) ) ) ) ) ) %} {%- set config = salt['grains.filter_by']( {'defaults': defaults}, default='defaults', merge=_config ) %} {%- set sudoers = config %} {#- Post-processing for specific non-YAML customisations #} {%- if grains.os == 'MacOS' %} {%- set macos_group = salt['cmd.run']("stat -f '%Sg' /dev/console") %} {%- do sudoers.update({'rootgroup': macos_group}) %} {%- endif %}