- name: Disable built-in serial uart in /boot/firmware/usercfg.txt on Ubuntu < 20.10 on RPi
  lineinfile:
    path: /boot/firmware/usercfg.txt
    line: "enable_uart=0"
    state: present
  when: rpi_model != "none" and is_ubuntu and (ansible_distribution_version is version('20.10', '<'))
  #when: rpi_model != "none" and is_ubuntu and (ansible_distribution_release == "focal")
  # 2020-10-27 #2585: Ubuntu Desktop 20.10 has no /boot/firmware/usercfg.txt

- name: Install pi-bluetooth package on Ubuntu on RPi
  package:
    name: pi-bluetooth
    state: present
  when: rpi_model != "none" and is_ubuntu

- name: Install bluetooth packages
  package:
    name:
      - bluetooth
      - bluez
      - bluez-tools
    state: present

- name: Create bluetooth services
  template:
    backup: no
    src: "{{ item.src }}"
    dest: "{{ item.dest }}"
    owner: root
    group: root
    mode: 0644
  with_items:
    - { src: 'bt-agent.service.j2', dest: '/etc/systemd/system/bt-agent.service' }
    - { src: 'bt-pan.service.j2', dest: '/etc/systemd/system/bt-pan.service' }
    - { src: 'bt-term.service.j2', dest: '/etc/systemd/system/bt-term.service' }
    - { src: 'network.conf.j2', dest: '/etc/bluetooth/network.conf' }

- name: Create bluetooth utility scripts
  template:
    backup: no
    src: "{{ item.src }}"
    dest: "{{ item.dest }}"
    owner: root
    group: root
    mode: 0755
  with_items:
    - { src: 'iiab-bt-pan-on.j2', dest: '/usr/bin/iiab-bt-pan-on' }
    - { src: 'iiab-bt-pan-off.j2', dest: '/usr/bin/iiab-bt-pan-off' }
    - { src: 'iiab-bt-pan-discoverable-on.j2', dest: '/usr/bin/iiab-bt-pan-discoverable-on' }
    - { src: 'iiab-bt-term-on.j2', dest: '/usr/bin/iiab-bt-term-on' }
    - { src: 'iiab-bt-term-off.j2', dest: '/usr/bin/iiab-bt-term-off' }

# Bluetooth service needs /usr/lib/bluetooth/bluetoothd -C --noplugin=sap
# Copy and patch it

- name: Copy the bluetooth service
  template:
    dest: /etc/systemd/system/bluetooth.service
    src: /lib/systemd/system/bluetooth.service

- name: Add -C --noplugin=sap to execStart of bluetooth service
  lineinfile:
    path: /etc/systemd/system/bluetooth.service
    regexp: '^ExecStart=/usr/lib/bluetooth/bluetoothd'
    line: 'ExecStart=/usr/lib/bluetooth/bluetoothd -C --noplugin=sap'

- name: Set discoverable not to timeout
  lineinfile:
    path: /etc/bluetooth/main.conf
    regexp: '^#DiscoverableTimeout'
    line: 'DiscoverableTimeout = 0'


# RECORD Bluetooth AS INSTALLED

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

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