diff --git a/postfix/init.sls b/postfix/init.sls index 3f4e717..fc6d6c2 100644 --- a/postfix/init.sls +++ b/postfix/init.sls @@ -12,10 +12,24 @@ postfix: - watch: - pkg: postfix +{# Used for newaliases, postalias and postconf #} +{%- set default_database_type = salt['pillar.get']('postfix:config:default_database_type', 'hash') %} + # manage /etc/aliases if data found in pillar {% if 'aliases' in pillar.get('postfix', '') %} -{{ postfix.aliases_file }}: + {%- set need_newaliases = False %} + {%- set file_path = postfix.aliases_file %} + {%- if ':' in file_path %} + {%- set file_type, file_path = postfix.aliases_file.split(':') %} + {%- else %} + {%- set file_type = default_database_type %} + {%- endif %} + {%- if file_type in ("btree", "cdb", "dbm", "hash", "sdbm") %} + {%- set need_newaliases = True %} + {%- endif %} +postfix_alias_database: file.managed: + - name: {{ file_path }} - source: salt://postfix/aliases - user: root - group: root @@ -23,13 +37,13 @@ postfix: - template: jinja - require: - pkg: postfix - -run-newaliases: + {%- if need_newaliases %} cmd.wait: - name: newaliases - cwd: / - watch: - - file: {{ postfix.aliases_file }} + - file: {{ file_path }} + {%- endif %} {% endif %} # manage various mappings @@ -37,7 +51,11 @@ run-newaliases: {%- set need_postmap = False %} {%- set file_path = salt['pillar.get']('postfix:config:' ~ mapping) %} {%- if ':' in file_path %} - {%- set file_path = file_path.split(':')[1] %} + {%- set file_type, file_path = file_path.split(':') %} + {%- else %} + {%- set file_type = default_database_type %} + {%- endif %} + {%- if file_type in ("btree", "cdb", "dbm", "hash", "sdbm") %} {%- set need_postmap = True %} {%- endif %} postfix_{{ mapping }}: