- name: Install dependencies for Arch
  package:
    name: "{{ item }}"
  loop:
    - perl
    - perl-capture-tiny
    - perl-config-inifiles
    - pv
    - lzop
  when: ansible_os_family == 'Archlinux'
  become: true

- name: Install dependencies for Debian-based distros
  package:
    name: "{{ item }}"
  loop:
    - libcapture-tiny-perl
    - libconfig-inifiles-perl
    - pv
    - lzop
    - mbuffer
  when: ansible_os_family == 'Debian'
  become: true

- name: Download
  git:
    repo: https://github.com/jimsalterjrs/sanoid.git
    dest: /opt/sanoid
    version: v2.1.0
  become: true

- name: Create config directory
  file:
    path: /etc/sanoid
    state: directory
    mode: "0755"
  become: true

- name: Install default config
  file:
    src: /opt/sanoid/sanoid.defaults.conf
    dest: /etc/sanoid/sanoid.defaults.conf
    state: link
  become: true

- name: Install executables
  file:
    src: /opt/sanoid/{{ item }}
    dest: /usr/sbin/{{ item }}
    state: link
  loop:
    - sanoid
    - syncoid
    - findoid
    - sleepymutex
  become: true

- name: Install config
  template:
    src: files/sanoid.conf
    dest: /etc/sanoid/sanoid.conf
    mode: "0755"
  become: true

- name: Install systemd services
  file:
    src: /opt/sanoid/packages/debian/{{ item }}
    dest: /lib/systemd/system/{{ item }}
    state: link
  loop: "{{ sanoid_services }}"
  become: true

- name: Enable systemd services
  systemd:
    name: "{{ item }}"
    enabled: true
    masked: false
  loop: "{{ sanoid_services }}"
  become: true

- name: Start sanoid timer
  systemd:
    name: sanoid.timer
    state: started
  become: true