---
- name: Create mount points
  file:
    path: "{{ item.path }}"
    state: directory
    owner: "{{ item.owner | default('root') }}"
    group: "{{ item.group | default('root') }}"
    mode: "{{ item.mode | default('0750') }}"
  with_items:
    - "{{ mergerfs_disks }}"
    - "{{ mergerfs_fstab }}"
  loop_control:
    label: "{{ item.path }}"
  when:
    - mergerfs_disks is defined
  

- name: Ensure disks are mounted
  mount:
    path: "{{ item.path }}"
    src: "{{ item.disk }}"
    fstype: "{{ item.fs | default('xfs') }}"
    opts: "{{ item.opts | default('defaults') }}"
    state: mounted
  with_items:
    - "{{ mergerfs_disks }}"
  loop_control:
    label: "{{ item.disk }} -> {{ item.path }}"
  when:
    - mergerfs_disks is defined

- name: Ensure mergerfs array is mounted
  mount:
    name: "{{ item.path }}"
    src: "{{ item.source }}"
    opts: "{{ item.opts | join(',') }}"
    fstype: "{{ item.fs | default('fuse.mergerfs') }}"
    state: mounted
  with_items:
    - "{{ mergerfs_fstab }}"
  loop_control:
    label: "{{ item.path }}"
  when:
    - fstab_mergerfs is defined