---
# Cross-platform package management.

- name: General | Software | Packages | Fix Parrot OS
# They have zypper higher in the path, but it's really apt renamed.
# Probably for "security", but package module does not use the ansible_pkg_mgr variable
#   so resetting the value to apt doesn't work. Just going to move it.
  shell: "mv `which zypper` `which zypper`.zz.`date +%Y%m%d`"
  register: parrotos_zypper_removed
  ignore_errors: yes
  when: ansible_distribution == "Parrot OS"

- name: General | Software | Packages | Fixed Parrot OS, Exit Incoming
  debug:
    msg: "A silly zypper file was renamed successfully. Please try running Ansible again."
  when: parrotos_zypper_removed is defined and not parrotos_zypper_removed.failed

- name: General | Software | Packages | Fixed Parrot OS, Exiting
  shell: exit 1
  when: parrotos_zypper_removed is defined and not parrotos_zypper_removed.failed


- name: General | Software | Packages | Cache Refresh (Apt and Pacman)
  package:
    update_cache: yes
    name: htop
  when: ansible_pkg_mgr in ["apt", "pacman"]

- name: General | Software | Packages | Cache Refresh (FreeBSD)
  shell: pkg update
  when: ansible_system == "FreeBSD"

- name: General | Software | Packages | Install Software
  package: 
    name:
    - bash
    - sudo
    - nmap
    - neofetch
    - "{{ sshfs }}"
    - "{{ locate }}"
    - zsh
    - "{{ opensshd }}"
    state: present

- name: General | Software | Packages | Update Software (Disabled)
  package: 
    name:
    - ansible
    - git
    state: latest
  when: 1 == 0

- name: General | Software | Packages | Remove Software
  package: 
    name:
    - cowsay # Sorry ;)
    - chromium
    - chromium-browser
    state: absent

# Ubuntu still uses snap for critical components like GNOME, must keep.
- name: General | Software | Services | Disable Snap Daemon
  service:
    name: snapd
    pattern: snapd
    state: stopped
    enabled: no
  when: ansible_distribution != "Ubuntu"
  ignore_errors: yes

- name: General | Software | Packages | Remove Snap (Besides Ubuntu)
  package: 
    name:
    - snapd
    state: absent
  when: ansible_distribution != "Ubuntu"
  ignore_errors: yes