- name: 'Install 3 packages: awstats, openssl, pwauth'
  package:
    name:
      - awstats
      - pwauth
      - openssl
    state: present
  tags:
    - download

- name: 'Install 2 packages: apache2-utils, libapache2-mod-authnz-external (debuntu)'
  package:
    name:
      - libapache2-mod-authnz-external
      - apache2-utils
    state: present
  when: is_debuntu
  tags:
    - download

- name: Enable cgi execution (debuntu)
  command: a2enmod cgi
  when: is_debuntu

- name: 'Mandate {{ apache_user }}:{{ apache_user }} perm 0750 dirs: {{ awstats_data_dir }} (intermediate summary storage) & {{ apache_log_dir }}'    # /library/awstats & /var/log/apache2 typically
  file:
    path: "{{ item }}"
    mode: 0750
    owner: "{{ apache_user }}"
    group: "{{ apache_user }}"
    state: directory
    recurse: true
    force: true
  with_items:
    - "{{ awstats_data_dir }}"
    - "{{ apache_log_dir }}"

- name: Install Apache's awstats.conf from template (debuntu)
  template:
    src: apache.conf
    dest: "/etc/{{ apache_config_dir }}/awstats.conf"
    owner: root
    group: root
    mode: 0644
  when: awstats_enabled and is_debuntu

- name: Install Apache's awstats.conf from template (OS's other than debuntu)
  template:
    src: apache-awstats.conf
    dest: "/etc/{{ apache_config_dir }}/awstats.conf"
    owner: root
    group: root
    mode: 0644
  when: awstats_enabled and not is_debuntu

- name: Ensure logrotate doesn't make logs unreadable (debuntu)
  template:
    src: logrotate.d.apache2
    dest: /etc/logrotate.d/apache2
  when: is_debuntu

- name: Check if package installed /etc/awstats/awstats.conf
  stat:
    path: /etc/awstats/awstats.conf
  register: awstats

- name: If so, move it aside to /etc/awstats/awstats.conf.dist
  command: mv /etc/awstats/awstats.conf /etc/awstats/awstats.conf.dist
  when: awstats.stat.islnk is defined and not awstats.stat.islnk

- name: Create symlink awstats.conf from sites-enabled to sites-available (debuntu)
  file:
    src: /etc/apache2/sites-available/awstats.conf
    path: /etc/apache2/sites-enabled/awstats.conf
    state: link
  when: awstats_enabled and is_debuntu

- name: Remove symlink from sites-enabled, to disable AWStats (debuntu)
  file:
    path: /etc/apache2/sites-enabled/awstats.conf
    state: absent
  when: not awstats_enabled and is_debuntu

- name: Install /etc/awstats/awstats.schoolserver.conf
  template:
    src: awstats.schoolserver.conf.j2
    dest: /etc/awstats/awstats.schoolserver.conf
    owner: root
    group: root
    mode: 0644
  when: awstats_enabled

- name: Create a symlink /etc/awstats/awstats.conf for access by IP address
  file:
    src: /etc/awstats/awstats.schoolserver.conf
    path: /etc/awstats/awstats.conf
    state: link
  when: awstats_enabled

- name: On first enabling of AWStats, summarize httpd logs up to now (OS's other than debuntu)
  shell: /bin/perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=schoolserver -update
  when: awstats_enabled and not is_debuntu

- name: On first enabling of AWStats, summarize httpd logs up to now (debuntu)
  shell: /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=schoolserver -update
  when: awstats_enabled and is_debuntu
