---
- name: Converge
  hosts: all
  become: true

  vars:
    php_enable_webserver: false
    php_enable_php_fpm: true
    php_memory_limit: "192M"
    php_enablerepo: "remi,remi-php82"
    php_install_recommends: false

  handlers:
    - name: update apt cache
      apt: update_cache=true
      when: ansible_os_family == 'Debian'

  pre_tasks:
    - name: Update apt cache.
      apt:
        update_cache: true
        cache_valid_time: 600
      when: ansible_os_family == 'Debian'
      changed_when: false

    - name: Ensure dirmngr is installed (gnupg dependency).
      apt:
        name: dirmngr
        state: present
      when: ansible_os_family == 'Debian'

    # Debian-specific tasks.
    - name: Add dependencies for PHP versions (Debian).
      apt:
        name:
          - apt-transport-https
          - ca-certificates
          - gnupg2
        state: present
      when: ansible_distribution == "Debian"

    - name: Add Ondrej Sury's repo for PHP 8 (Ubuntu).
      apt_repository:
        repo: 'ppa:ondrej/php'
      when: ansible_distribution == 'Ubuntu'

    - name: Add Ondrej Sury's apt key (Debian).
      apt_key:
        url: https://packages.sury.org/php/apt.gpg
        state: present
      when: ansible_distribution == "Debian"

    - name: Add Ondrej Sury's repo (Debian).
      apt_repository:
        repo: "deb https://packages.sury.org/php/ {{ ansible_distribution_release }} main"
        state: present
      when: ansible_distribution == "Debian"
      notify: update apt cache

    - meta: flush_handlers

  roles:
    - role: geerlingguy.repo-remi
      when:
        - ansible_os_family == 'RedHat'
        - ansible_distribution != 'Fedora'
    - role: geerlingguy.php

  post_tasks:
    - name: Confirm PHP configuration is correct.
      shell: php -i | grep 'memory_limit.*192'
      changed_when: false
