{% set default_version = '4.2.0' %} {% set version_parts = default_version.split('.') %} {% set default_major = version_parts[0] ~ '.' ~ version_parts[1] %} {# Map distro-specific package names using grains #} {% set xz_pkg = 'xz-utils' if grains['os_family'] == 'Debian' else 'xz' %} {% set defaults = { 'version': default_version, 'install_root': '/opt', 'bin_dir': '/usr/local/bin', 'desktop_dir': '/usr/share/applications', 'download_url_base': 'https://download.blender.org/release', 'pkgs': [xz_pkg, 'tar', 'curl'] } %} {# Merge pillar data under the 'blender' key over defaults #} {% set blender = salt['pillar.get']('blender', default=defaults, merge=True) %} {# Derived variables #} {% set major_version = blender.version.split('.')[0] ~ '.' ~ blender.version.split('.')[1] %} {% set archive_name = 'blender-' ~ blender.version ~ '-linux-x64.tar.xz' %} {% do blender.update({ 'archive_dir': blender.install_root ~ '/blender-' ~ blender.version ~ '-linux-x64', 'symlink_dir': blender.install_root ~ '/blender', 'download_url': blender.download_url_base ~ '/Blender' ~ major_version ~ '/' ~ archive_name }) %}