- name: Download & install python-dateutil, sqlite3
  package:
    name: "{{ item }}"
    state: present
  with_items:
    - python-dateutil
    - sqlite3    # @georgejhunt hopes to move this to 2-common (or more likely 3-base-server, alongside MySQL) in October 2018

- name: Install libapache2-mod-wsgi (debuntu)
  package:
    name: libapache2-mod-wsgi
    state: present
  when: is_debuntu | bool

- name: Install mod_wsgi (not debuntu)
  package:
    name: mod_wsgi
    state: present
  when: not is_debuntu

- name: Create directory /opt/iiab/captive-portal for scripts & templates
  file:
    path: /opt/iiab/captive-portal
    state: directory
    owner: "{{ apache_user }}"

- name: 'Copy scripts: checkurls, capture-wsgi.py'
  template:
    src: "{{ item.src }}"
    dest: /opt/iiab/captive-portal/
    mode: "{{ item.mode }}"
  with_items:
    - { src: roles/captive-portal/templates/checkurls, mode: '0644' }
    - { src: roles/captive-portal/templates/capture-wsgi.py, mode: '0755' }

- name: 'Copy templates: simple.template, mac.template'
  copy:
    src: "{{ item }}"
    dest: /opt/iiab/captive-portal/
  with_items:
    - roles/captive-portal/files/simple.template
    - roles/captive-portal/files/mac.template

- name: Copy iiab-catch & iiab-uncatch into /usr/bin/
  template:
    src: "{{ item }}"
    dest: /usr/bin/
    owner: root
    group: root
    mode: 0755
  with_items:
    - roles/captive-portal/templates/iiab-catch
    - roles/captive-portal/templates/iiab-uncatch

- name: Run iiab-uncatch to generate diversion lists for dnsmasq and apache2
  shell: /usr/bin/iiab-uncatch
     
#- name: Install systemd unit file captive-portal.service from template
#  template:
#    src: roles/captive-portal/templates/captive-portal.service.j2
#    dest: /etc/systemd/system/captive-portal.service
#    owner: root
#    group: root
#    mode: 0644

- name: Install Apache's captive-portal.conf from template if captive_portal_enabled
  template:
    src: roles/captive-portal/templates/001-captive-portal.conf
    dest: /etc/{{ apache_config_dir }}/001-captive-portal.conf
    owner: root
    group: root
    mode: 0644
  when: captive_portal_enabled | bool

- name: Enable Apache's captive-portal.conf if captive_portal_enabled (debuntu)
  file:
    src: /etc/apache2/sites-available/001-captive-portal.conf
    path: /etc/apache2/sites-enabled/001-captive-portal.conf
    state: link
  when: captive_portal_enabled and is_debuntu

- name: Enable Apache's default-ssl.conf if captive_portal_enabled (debuntu)
  file:
    src: /etc/apache2/sites-available/default-ssl.conf
    path: /etc/apache2/sites-enabled/default-ssl.conf
    state: link
  when: captive_portal_enabled and is_debuntu

#- name: Enable & Start systemd service captive-portal.service if captive_portal_enabled
#  systemd:
#    name: captive-portal.service
#    daemon-reload: yes
#    enabled: yes
#    state: started
#  when: captive_portal_enabled | bool

#- name: Disable & Stop captive-portal.service if not captive_portal_enabled
#  systemd:
#    name: captive-portal.service
#    enabled: no
#    state: stopped
#  when: not captive_portal_enabled

- name: Disable Apache's captive-portal.conf if not captive_portal_enabled (debuntu)
  file:
    path: /etc/apache2/sites-enabled/001-captive-portal.conf
    state: absent
  when: not captive_portal_enabled and is_debuntu

- name: Disable Apache's default-ssl.conf if not captive_portal_enabled (debuntu)
  file:
    path: /etc/apache2/sites-enabled/default-ssl.conf
    state: absent
  when: not captive_portal_enabled and is_debuntu

- name: Make sure dnsmasq is not diverting if not captive_portal_enabled
  file:
    path: /etc/dnsmasq.d/capture
    state: absent
  when: not captive_portal_enabled

- name: Restart Apache service ({{ apache_service }})    # i.e. apache2 on most distros
  systemd: 
    name: "{{ apache_service }}"
    state: restarted

#- name: Restart dnsmasq
#  systemd:
#    name: dnsmasq
#    state: restarted
#  when: dnsmasq_enabled | bool

# ABOVE DOES NOT WORK ON UBUNTU 16.04 -- what follows is a crude hack (seems to work!)

- name: Stop dnsmasq
  systemd:
    name: dnsmasq
    state: stopped
  when: dnsmasq_enabled | bool

- name: Start dnsmasq
  systemd:
    name: dnsmasq
    state: started
  when: dnsmasq_enabled | bool
  
