diff --git a/states/snappymail/config.sls b/states/snappymail/config.sls new file mode 100644 index 0000000..b003e58 --- /dev/null +++ b/states/snappymail/config.sls @@ -0,0 +1,19 @@ +--- +{%- from "snappymail/map.jinja" import snappymail with context %} +snappymail-data-dir: + file.directory: + - name: {{ snappymail.data_dir }} + - user: {{ snappymail.user }} + - group: {{ snappymail.group }} + +snappymail-config: + file.managed: + - name: {{ snappymail.install_dir }}/snappymail/include.php + - source: salt://snappymail/templates/include.php.j2 + - user: {{ snappymail.user }} + - group: {{ snappymail.group }} + - template: jinja + - context: + config_includes: + - '$sCustomDataPath = "{{ snappymail.data_dir }}";' + - '$sCustomConfiguration = "";' \ No newline at end of file diff --git a/states/snappymail/defaults.yaml b/states/snappymail/defaults.yaml new file mode 100644 index 0000000..5896e7f --- /dev/null +++ b/states/snappymail/defaults.yaml @@ -0,0 +1,12 @@ +--- +snappymail: + enabled: true + install_dir: /usr/local/apps + release_dir: /usr/local/apps/releases + release_filename: snappymail + mirror: https://github.com/the-djmaze/snappymail/releases/download + version: 2.38.2 + data_dir: /var/lib/snappymail + user: www-data + group: www-data + config: {} diff --git a/states/snappymail/init.sls b/states/snappymail/init.sls new file mode 100644 index 0000000..a1253de --- /dev/null +++ b/states/snappymail/init.sls @@ -0,0 +1,5 @@ +--- +include: + - php + - .install + - .config diff --git a/states/snappymail/install.sls b/states/snappymail/install.sls new file mode 100644 index 0000000..2591799 --- /dev/null +++ b/states/snappymail/install.sls @@ -0,0 +1,18 @@ +--- +{%- from "snappymail/map.jinja" import snappymail with context %} +snappymail-archive-extract: + archive.extracted: + - name: {{ snappymail.release_dir }}/{{ snappymail.release_filename }}-{{ snappymail.version }} + - source: {{ snappymail.mirror }}/v{{ snappymail.version }}/{{ snappymail.release_filename }}-{{ snappymail.version }}.zip + - skip_verify: true + - enforce_toplevel: false + - user: {{ snappymail.user }} + - group: {{ snappymail.group }} + - if_missing: {{ snappymail.release_dir }}/{{ snappymail.release_filename }}-{{ snappymail.version }} + +snappymail-archive-symlink: + file.symlink: + - name: {{ snappymail.install_dir }}/snappymail + - target: {{ snappymail.release_dir }}/{{ snappymail.release_filename }}-{{ snappymail.version }} + - require: + - archive: snappymail-archive-extract diff --git a/states/snappymail/map.jinja b/states/snappymail/map.jinja new file mode 100644 index 0000000..d4b3e3e --- /dev/null +++ b/states/snappymail/map.jinja @@ -0,0 +1,5 @@ +{%- import_yaml "snappymail/defaults.yaml" as default_settings -%} + +{%- set defaults = salt['grains.filter_by'](default_settings, default='snappymail') -%} + +{%- set snappymail = salt['pillar.get']('snappymail', default=defaults, merge=True) -%} \ No newline at end of file diff --git a/states/snappymail/templates/include.php.j2 b/states/snappymail/templates/include.php.j2 new file mode 100644 index 0000000..09df649 --- /dev/null +++ b/states/snappymail/templates/include.php.j2 @@ -0,0 +1,5 @@ +