# usbmount 0.0.24 and/or 0.0.25 (2022-02-08) should be investigated:
# https://github.com/iiab/iiab/issues/3409

# Official usbmount 0.0.22 (2011-08-08) documentation:
# https://github.com/rbrito/usbmount/releases
# https://github.com/hfuchs/usbmount/blob/master/README (2010-08-11)
# https://github.com/rbrito/usbmount/blob/master/README.md (2018-08-10)
# https://github.com/rbrito/usbmount/blob/master/usbmount.conf (2010-04-25)

- name: Does systemd-udevd.service exist
  stat:
    path: "{{ systemd_location }}/systemd-udevd.service"
  register: udev_unit

- name: Copy udevd service to /etc/systemd/system to modify
  copy:
    src: "{{ systemd_location }}/systemd-udevd.service"
    dest: /etc/systemd/system/systemd-udevd.service
    owner: root
    group: root
    mode: 0644
  when: udev_unit.stat.exists is defined and udev_unit.stat.exists

- name: Change MountFlags from slave to shared
  lineinfile:
    backup: no
    dest: /etc/systemd/system/systemd-udevd.service
    regexp: '^MountFlags'
    line: 'MountFlags=shared'
    state: present
  when: udev_unit.stat.exists is defined and udev_unit.stat.exists

- name: Ask systemd to reread unit files (daemon-reload) and restart so systemd recognizes the changes
  systemd:
    daemon_reload: yes
    name: systemd-udevd
    state: restarted
  when: udev_unit.stat.exists is defined and udev_unit.stat.exists

# http://raspbian.raspberrypi.org/raspbian/pool/main/u/usbmount/usbmount_0.0.22_all.deb
- name: Install {{ iiab_download_url }}/usbmount_0.0.22_all.deb, no longer supported by {RasPiOS, Debian, Ubuntu}
  apt:
    deb: "{{ iiab_download_url }}/usbmount_0.0.22_all.deb"
  # when: is_debian

# check status of usbmount on mintlinux - should be ok Ubuntu variant
# - name: Install usbmount from OS repo for Ubuntu variants
#   package:
#     name: usbmount
#     state: present
#   when: is_ubuntu

- name: Add dir {{ doc_root }}/local_content, where USB drive links can appear (0775)
  file:
    state: directory
    path: "{{ doc_root }}/local_content"
    owner: "{{ apache_user }}"
    group: "{{ apache_user }}"    # 2020-02-13: changed from iiab_admin_user, after discussion on weekly call (#1228, #2222)
    mode: 0775

- name: 'Install from template: /etc/udev/rules.d/usbmount.rules, /etc/systemd/system/usbmount@.service, /usr/bin/iiab-usb_lib-show-all-on, /usr/bin/iiab-usb_lib-show-all-off, /usr/sbin/iiab-clean-usb.sh'
  template:
    src: "{{ item.src }}"
    dest: "{{ item.dest }}"
    mode: "{{ item.mode }}"
  with_items:
    - { src: 'usbmount.rules.j2', dest: '/etc/udev/rules.d/usbmount.rules', mode: '0644' }
    - { src: 'usbmount@.service.j2', dest: '/etc/systemd/system/usbmount@.service', mode: '0644' }
    - { src: 'iiab-usb_lib-show-all-on', dest: '/usr/bin/', mode: '0755' }
    - { src: 'iiab-usb_lib-show-all-off', dest: '/usr/bin/', mode: '0755' }
    - { src: 'iiab-clean-usb.sh', dest: '/usr/sbin/', mode: '0755' }

# 2021-03-21: If usbmount is repackaged by apt as a result of Linux kernel 5.4+
# supporting exFAT, the stanza below (might) in future no longer be needed...
# SEE ALSO: https://github.com/iiab/iiab/blob/master/roles/2-common/tasks/packages.yml#L22-L23
- name: Add ' exfat fuseblk ntfs' to FILESYSTEMS var in /etc/usbmount/usbmount.conf
  lineinfile:
    regexp: '^FILESYSTEMS=.*'
    line: 'FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus exfat fuseblk ntfs"'
    path: /etc/usbmount/usbmount.conf

- name: Remove /etc/usbmount/mount.d/00_create_model_symlink
  file:
    path: /etc/usbmount/mount.d/00_create_model_symlink
    state: absent


# RECORD 'USB_LIB' AS INSTALLED

- name: "Set 'usb_lib_installed: True'"
  set_fact:
    usb_lib_installed: True

- name: "Add 'usb_lib_installed: True' to {{ iiab_state_file }}"
  lineinfile:
    path: "{{ iiab_state_file }}"    # /etc/iiab/iiab_state.yml
    regexp: '^usb_lib_installed'
    line: 'usb_lib_installed: True'
