---

- name: install php dependencies
  ansible.builtin.apt:
    name:
      - php-imap
      - php-mysql
      - php-mbstring
      - python3-pymysql  # required by ansible

- name: create postfixadmin installation directory
  ansible.builtin.file:
    path: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}"
    state: directory
    owner: root
    group: www-data
    mode: 0755

- name: download and unpack postfixadmin release
  ansible.builtin.unarchive:
    remote_src: yes
    src: "https://github.com/postfixadmin/postfixadmin/archive/refs/tags/postfixadmin-{{ postfixadmin_version }}.tar.gz"
    dest: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}"
    creates: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}/config.inc.php"
    extra_opts: ["--strip-components=1"]
    owner: root
    group: www-data
    mode: 0755

- name: create templates_c directory
  ansible.builtin.file:
    path: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}/templates_c"
    state: directory
    owner: root
    group: www-data
    mode: 0775

- name: create config.local.php
  ansible.builtin.template:
    src: config.local.php.j2
    dest: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}/config.local.php"
    owner: root
    group: www-data
    mode: 0640

- name: change config.inc.php permissions
  ansible.builtin.file:
    path: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}/config.inc.php"
    owner: root
    group: www-data
    mode: 0640

- name: symlink postfixadmin-cli to /usr/local/bin
  ansible.builtin.file:
    path: "/usr/local/bin/postfixadmin-cli"
    src: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}/scripts/postfixadmin-cli"
    state: link

- name: symlink to new installation directory
  ansible.builtin.file:
    path: "{{ postfixadmin_installation_prefix }}/postfixadmin"
    src: "{{ postfixadmin_installation_prefix }}/postfixadmin-{{ postfixadmin_version }}"
    state: link