---
# 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