---
- name: Set the correct opcache filename (Ubuntu/Debian).
  set_fact:
    php_opcache_conf_filename: "10-opcache.ini"

- name: Ensure dirmngr is installed (gnupg dependency).
  apt:
    name: dirmngr
    state: present

- name: Add repository for PHP versions (Ubuntu).
  apt_repository: repo='ppa:ondrej/php'
  when: ansible_distribution == "Ubuntu"

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

- name: Add Ondrej Sury's apt key (Debian).
  apt_key:
    url: https://packages.sury.org/php/apt.gpg
    id: 15058500A0235D97F5D10063B188E2B695BD4743
    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
  register: php_ondrej_debian_repo
  when: ansible_distribution == "Debian"

- name: Update apt caches after repo is added (Debian).
  apt: update_cache=true
  when:
    - php_ondrej_debian_repo.changed
    - ansible_distribution == "Debian"
  tags: ['skip_ansible_lint']

- name: Purge PHP version packages (besides the currently chosen php_version).
  apt:
    name: "{{ php_versions_debian | reject('search', 'php' ~ php_version) | list }}"
    state: absent
    purge: true
    force: true
  register: php_version_purge

- name: Also purge php-common package if any versions were just purged.
  apt:
    name: php-common
    state: absent
    purge: true
    force: true
  when: php_version_purge.changed | bool
