- name: Install packages
  package:
    name:
      - rsync
      - bash
      - tmux
      - lsof
      - mg
      - htop
      - tree
      - curl
      - ncdu
      - ripgrep
      - git-crypt
      - wget
      - htop
      - colordiff
      - ipcalc
      - kdiff3
      - tcpdump
      - moreutils # for ts [%Y-%m-%d %H:%M:%.S]
    state: present

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

- name: Install scripts
  copy:
    src: "files/{{ item.src }}"
    dest: "{{ item.dest }}"
    mode: 0755
    owner: root
    group: wheel
  loop:
    - src: git_branches_by_owner_time
      dest: /usr/local/bin/git_branches_by_owner_time
    - src: rsyncclone
      dest: /usr/local/bin/rsyncclone
    - src: git_find_merged_branches
      dest: /usr/local/bin/git_find_merged_branches
    - src: cleanup_temporary_files
      dest: /usr/local/bin/cleanup_temporary_files

- 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 }}"
  loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
  loop_control:
    loop_var: initialize_user