# -*- coding: utf-8 -*- # vim: ft=jinja {%- set tplroot = tpldir.split('/')[0] %} {%- import_yaml tplroot ~ "/defaults.yaml" as default_settings %} {%- import_yaml tplroot ~ "/osfingermap.yaml" as osfingermap %} {%- import_yaml tplroot ~ "/osarchmap.yaml" as osarchmap %} {%- import_yaml tplroot ~ "/osfamilymap.yaml" as osfamilymap %} {%- set _config = salt['config.get'](tplroot, default={}) %} {%- set defaults = salt['grains.filter_by']( default_settings, default=tplroot, merge=salt['grains.filter_by']( osfamilymap, grain='os_family', merge=salt['grains.filter_by']( osarchmap, grain='osarch', merge=salt['grains.filter_by']( osfingermap, grain='osfinger', merge=salt['grains.filter_by']( _config, default='lookup' ) ) ) ) ) %} {%- set d = salt['grains.filter_by']( {'defaults': defaults}, default='defaults', merge=_config) %} # depreciate two params {%- if 'software_component_matrix' in d %} {%- do d.update({ 'components': d.software_component_matrix }) %} {%- endif %} {%- if 'software_package_matrix' in d %} {%- do d.update({ 'packagetypes': d.software_package_matrix }) %} {%- endif %} # build dict {%- for comp in d.componentypes %} {%- if comp in d.pkg and d.pkg[comp] is mapping %} {%- for name,v in d.pkg[comp].items() %} {%- set software = d.pkg[comp][name] %} {%- set url = None %} {%- set path = d.dir.archive ~ '/' ~ name %} {%- if 'version' in v and v.version %} {%- set release = v.version.split('.')[0] ~ '.' ~ v.version.split('.')[1] %} {%- set dir = '%s-%s'|format(name, v.version) %} {%- set path = d.dir.archive ~ '/' ~ dir %} {%- for package in d.packagetypes %} {%- if package in v and v[package] %} {%- set path = d.dir[package] if package == 'macapp' else path %} {%- do software[package].update({'name': path}) %} {%- if 'source' in v[package] %} {%- set u = v[package]['source']|replace('VER', v.version) %} {%- set url = u|replace('REL', release)|replace('ARCH', d.arch) %} {%- do software[package].update({'source': url}) %} {%- endif %} {%- if 'source_hash' in v[package] %} {%- set h = v[package]['source_hash']|replace('VER', v.version) %} {%- set hash = h|replace('REL', release)|replace('ARCH', d.arch) %} {%- do software[package].update({'source_hash': hash}) %} {%- endif %} {%- endif %} {%- endfor %} {%- endif %} {%- do software.update({'path': path}) %} {%- endfor %} {%- endif %} {%- endfor %} {# MONGODB #} {%- do d.update({'formula': 'mongodb'}) %} {%- do d.pkg.database.mongos.update({'path': d.pkg.database.mongod.path}) %} {%- if 'repo' in d.pkg and 'mongod' in d.pkg.database %} {%- for fname in ('file', 'name', 'humanname', 'gpgkey',) %} {%- if fname in d.pkg.repo %} {%- do d.pkg.repo.update({fname: d.pkg.repo[fname]|replace('REL', d.pkg.database.mongod.version)}) %} {%- endif %} {%- endfor %} {%- endif %} {%- set data = d %}