---
- name: Include OS-specific variables.
  include_vars: "{{ ansible_os_family }}.yml"

- name: Define php_uploadprogress_module_path.
  set_fact:
    php_uploadprogress_module_path: "{{ __php_uploadprogress_module_path }}"
  when: php_uploadprogress_module_path is not defined

- name: Define php_uploadprogress_config_filename.
  set_fact:
    php_uploadprogress_config_filename: "{{ __php_uploadprogress_config_filename }}"
  when: php_uploadprogress_config_filename is not defined

- name: Download and untar uploadprogress.
  unarchive:
    src: "https://github.com/php/pecl-php-uploadprogress/archive/master.tar.gz"
    dest: "{{ workspace }}"
    copy: no
    creates: "{{ workspace }}/pecl-php-uploadprogress-master"

- name: Build uploadprogress.
  shell: >
    {{ item }}
    chdir={{ workspace }}/pecl-php-uploadprogress-master
    creates={{ workspace }}/pecl-php-uploadprogress-master/modules/uploadprogress.so
  with_items:
    - phpize
    - ./configure
    - make
  notify: restart webserver

- name: Ensure uploadprogress module path exists.
  file:
    path: "{{ php_uploadprogress_module_path }}"
    state: directory
    owner: root
    group: root
    mode: 0755

- name: Move uploadprogress module into place.
  shell: >
    cp {{ workspace }}/pecl-php-uploadprogress-master/modules/uploadprogress.so {{ php_uploadprogress_module_path }}/uploadprogress.so
    creates={{ php_uploadprogress_module_path }}/uploadprogress.so
  notify: restart webserver

- name: Add php extension config for uploadprogress.
  template:
    src: uploadprogress.ini.j2
    dest: "{{ item }}/{{ php_uploadprogress_config_filename }}"
    owner: root
    group: root
    force: yes
    mode: 0644
  with_items: "{{ php_extension_conf_paths }}"
  notify: restart webserver