---
# file roles/autoinstall-dvbsky-firmware/tasks/main.yml

- name: determine needed firmware files by device ids
  block:
    - name: add firmware files for DVBSky if a card has been detected
      set_fact:
        dvbsky_firmware_files: ['dvb-demod-m88ds3103.fw', 'dvb-demod-m88rs6000.fw', 'dvb-tuner-si2158-a20-01.fw', 'dvb-demod-si2168-a20-01.fw', 'dvb-demod-si2168-a30-01.fw', 'dvb-demod-si2168-b40-01.fw', 'dvb-fe-ds300x.fw', 'dvb-fe-ds3103.fw', 'dvb-fe-rs6000.fw']
      when:
        - '"1ade:3038" in pci'
  when:
    - not dvbsky_firmware_files

- name: Download firmware for DVBSky cards and copy required files to /lib/firmware
  block:
    # download and extract firmware
    - unarchive:
        src: http://www.dvbsky.net/download/linux/dvbsky-firmware.tar.gz
        dest: /tmp/
        remote_src: yes

    # copy firmware file
    - copy:
        src: "/tmp/dvbsky-firmware/{{ item }}"
        dest: /lib/firmware/
        owner: root
        group: root
        mode: 0644
      with_items: '{{ dvbsky_firmware_files }}'
      notify: ['Trigger Udev']

    # Remove temporary files
    - file:
        path: /tmp/dvbsky-firmware
        state: absent
  when:
    - dvbsky_firmware_files is defined
    - dvbsky_firmware_files
  tags:
    - install
    - autodetect
    - dvbsky