- name: Set the /etc/hosts
  when: hostname is undefined or item.key != hostname
  ansible.builtin.lineinfile:
    path: /etc/hosts
    regexp: '^{{ item.key | regex_escape() }}\s+'
    line: "{{ item.key }}		{{ item.value | join(' ') }}"
  loop: "{{ etc_hosts | dict2items }}"

# Without an entry for the local hostname, firefox takes multiple minutes to launch.
- name: Set the /etc/hosts
  when: hostname is defined
  ansible.builtin.lineinfile:
    path: /etc/hosts
    regexp: '\s+{{ hostname | regex_escape() }}\s*$'
    line: "127.0.0.1		{{ hostname }}"

- import_tasks: tasks/freebsd.yaml
  when: 'os_flavor == "freebsd"'

- import_tasks: tasks/linux.yaml
  when: 'os_flavor == "linux"'

- include_tasks:
    file: tasks/peruser.yaml
    apply:
      become: yes
      become_user: "{{ initialize_user }}"
  when: users is defined
  loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
  loop_control:
    loop_var: initialize_user
