- name: Set timezone
  file:
    src: "/usr/share/zoneinfo/{{ timezone|default('UTC') }}"
    dest: /etc/localtime
    owner: root
    group: wheel
    state: link

- name: Install packages
  package:
    name:
      - pstree
      - gsed
      - gmake
      - rust-coreutils
    state: present

- name: Install service configuration
  copy:
    src: "files/{{ item }}_rc.conf"
    dest: "/etc/rc.conf.d/{{ item }}"
    mode: 0644
    owner: root
    group: wheel
  loop:
    - cleartmp

- name: Install login.conf
  copy:
    src: login.conf
    dest: /etc/login.conf
    owner: root
    group: wheel
    mode: 0644
  register: login_config

- name: Update cap_mkdb
  command: cap_mkdb /etc/login.conf
  when: login_config.changed

- name: Enable periodic scrub
  community.general.sysrc:
    name: daily_scrub_zfs_enable
    value: "YES"
    path: /etc/periodic.conf.local

- name: Set scrub interval
  community.general.sysrc:
    name: daily_scrub_zfs_default_threshold
    value: "7"
    path: /etc/periodic.conf.local

- name: Install loader.conf
  copy:
    src: "{{loader_conf}}"
    dest: /boot/loader.conf
    owner: root
    group: wheel
    mode: 0644
  when: loader_conf is defined

- name: Delete loader.conf
  file:
    path: /boot/loader.conf
    state: absent
  when: loader_conf is not defined

- name: Install rc.conf
  copy:
    src: "{{rc_conf}}"
    dest: /etc/rc.conf
    mode: 0644
    owner: root
    group: wheel
  when: rc_conf is defined

- name: Delete rc.conf
  file:
    path: /etc/rc.conf
    state: absent
  when: rc_conf is not defined

- name: Install scripts
  copy:
    src: "files/{{ item.src }}"
    dest: "{{ item.dest }}"
    mode: 0755
    owner: root
    group: wheel
  loop:
    - src: bemount.bash
      dest: /usr/local/bin/bemount
    - src: watch_freebsd
      dest: /usr/local/bin/ww

- name: Install rc script
  copy:
    src: "files/{{ item.src }}"
    dest: "/usr/local/etc/rc.d/{{ item.dest|default(item.src) }}"
    owner: root
    group: wheel
    mode: 0755
  loop:
    - src: bemount_rc.sh
      dest: bemount

- name: Enable bemount
  community.general.sysrc:
    name: bemount_enable
    value: "YES"
    path: /etc/rc.conf.d/bemount

- name: Install loader.conf
  copy:
    src: "files/{{ item }}_loader.conf"
    dest: "/boot/loader.conf.d/{{ item }}.conf"
    mode: 0644
    owner: root
    group: wheel
  loop:
    - disk_labels
