---
# file: roles/matomo/tasks/install.yml

- block:
  - set_fact:
      webRoot='/var/www/matomo/{{ matomo.id }}'
      apacheUser='www-data'
      apacheLogDir='/var/log/apache2'
    when: matomo.jail is not defined
  - set_fact:
      webRoot='{{ jailroot }}/{{ matomo.id }}/var/www/matomo'
      apacheUser='{{ matomo.id }}'
      apacheLogDir='{{ jailroot }}/{{ matomo.id }}/var/log/apache2'
    when: matomo.jail is defined
  tags: 'always'

- name: "Configure Apache"
  include_tasks: apache.yml
  tags: 'ApacheConfig'

- name: "Remove existing components"
  file:
    path: '{{ item }}'
    state: 'absent'
  with_items:
    - '{{ webRoot }}'
  when: matomo_force_reset
  tags: 'always'

- name: "Ensure Root Directories"
  file:
    path='{{ item }}'
    state='directory'
    owner='{{ apacheUser }}'
    group='{{ apacheUser }}'
    mode='775'
  with_items:
    - '{{ webRoot }}'
  tags: 'always'

- name: "File Modes and Ownership"
  file:
    path='{{ webRoot }}'
    owner='{{ apacheUser }}'
    group='{{ apacheUser }}'
    mode='g+w'
    recurse=yes
    follow=no
  tags: 'deploy'

- name: "Clone Git Repository"
  git:
    accept_hostkey: yes
    repo: 'git@github.com:matomo-org/matomo.git'
    dest: '{{ webRoot }}'
    track_submodules: yes
    force: yes
    version: '{{ matomo_version }}'
  become: false
  environment:
    GIT_LFS_SKIP_SMUDGE: '1'
  tags: 'deploy'

- name: "Configuration file"
  template:
    src='config.ini.php'
    dest='{{ webRoot }}/config/config.ini.php'
    owner='{{ apacheUser }}'
    group='{{ apacheUser }}'
    mode='664'
  tags: 'deploy'

- name: "Composer"
  composer:
    command='update'
    working_dir='{{ webRoot }}'
    no_dev=yes
    optimize_autoloader=yes
    prefer_dist=yes
  ignore_errors: true
  tags: 'deploy'

- name: "Ensure Working Directories"
  file:
    path='{{ item }}'
    state='directory'
    owner='{{ apacheUser }}'
    group='{{ apacheUser }}'
    mode='775'
  with_items:
    - '{{ webRoot }}/tmp'
  tags: 'always'

- name: "File Modes and Ownership"
  file:
    path='{{ webRoot }}'
    owner='{{ apacheUser }}'
    group='{{ apacheUser }}'
    mode='a-w'
    recurse=yes
    follow=no
  tags: 'deploy'

- name: "File Modes for .git Directory"
  file:
    path='{{ webRoot }}/.git'
    mode='og+w'
    recurse=yes
    follow=no
  tags: 'deploy'

- name: "File Modes for tmp"
  file:
    path='{{ webRoot }}/tmp'
    mode='ug+w'
    recurse=yes
    follow=no
  tags: 'deploy'

- name: "Ensure Database"
  mysql_db:
    name='matomo_{{ matomo.id }}'
    login_user='root'
    login_password='{{ mysql_root_password|default("root") }}'
    login_host='127.0.0.1'
    login_port='{{ matomo.db_port|default('3306') }}'
    state='present'

- name: "Run Upgrade"
  command: '{{ webRoot }}/console core:update --yes --no-interaction'
  become_user: '{{ apacheUser }}'
  ignore_errors: true
  tags: 'deploy'