---
# file: roles/php/tasks/oci-5.3.yml
#
# @see OCI8 Install: https://help.ubuntu.com/community/PHPOracle
# Better:
# @see PDO_OCI Install: https://drupal.org/comment/5572626#comment-5572626

- name: "PHP | Check OCI Requirement"
  stat:
    path: '/usr/lib/php5/20090626/pdo_oci.so'
  register: oci_file

- block:

  - name: "PHP | OCI | Enable OCI for PHP"
    copy:
      content: 'extension={{ item }}.so'
      dest: '/etc/{{ php_base_dir }}/{{ php_conf_dir }}/{{ item }}.ini'
      owner: 'root'
      group: 'root'
      mode: '644'
    with_items:
      - 'oci8'
      - 'pdo_oci'

  - name: "PHP | OCI | Remove possible components in /tmp"
    file:
      path: '/tmp/{{ item }}'
      state: 'absent'
    with_items:
      - 'instantclient_11_2'
      - 'oracle_x64_11_2_0_3_0_oci8_so'
      - 'oracle_x64_11_2_0_3_0_pdo_oci_so'

  - name: "PHP | OCI | Make available Oracle InstantClient"
    command: scp -r {{ repository }}{{ item }} /tmp/
    become: no
    with_items:
      - 'instantclient_11_2'
      - 'oracle_x64_11_2_0_3_0_oci8_so'
      - 'oracle_x64_11_2_0_3_0_pdo_oci_so'

  - name: "PHP | OCI | Remove /usr/local/lib/instantclient_11_2"
    file:
      path: '/usr/local/lib/instantclient_11_2'
      state: 'absent'

  - name: "PHP | OCI | Move Oracle InstantClient to /usr/local/lib"
    command: mv /tmp/instantclient_11_2 /usr/local/lib/

  - name: "PHP | OCI | Move oci8 to /usr/lib/php5"
    command: mv /tmp/oracle_x64_11_2_0_3_0_oci8_so /usr/lib/php5/20090626/oci8.so

  - name: "PHP | OCI | Move pdo_oci to /usr/lib/php5"
    command: mv /tmp/oracle_x64_11_2_0_3_0_pdo_oci_so /usr/lib/php5/20090626/pdo_oci.so

  - name: "PHP | OCI | Change ownership for Oracle InstantClient"
    file:
      path: '{{ item }}'
      owner: 'root'
      group: 'root'
      recurse: yes
      follow: no
    with_items:
      - '/usr/local/lib/instantclient_11_2'

  - name: "Ensure log directories"
    file:
      path: '/usr/local/lib/instantclient_11_2/log/diag/clients'
      owner: 'www-data'
      group: 'root'
      state: 'directory'
      mode: '775'
      follow: no

  - name: "Set permissions in log directories"
    file:
      path: '/usr/local/lib/instantclient_11_2/log'
      owner: 'www-data'
      group: 'root'
      mode: '775'
      recurse: yes
      follow: no

  - name: "PHP | OCI | Make available libclntsh.so"
    file:
      src: '/usr/local/lib/instantclient_11_2/libclntsh.so.11.1'
      dest: '/usr/local/lib/instantclient_11_2/libclntsh.so'
      state: 'link'

  when: not oci_file.stat.exists
