# TODO:
# * Configure GNOME extensions
# * Configure the Fedora host with custom systemd units
# * Custom session variables
# This is the playbook for a Fedora Workstation post-installation.
---
- name: foo-dogsquared's Fedora workstation
  hosts: workstation
  become: yes

  roles:
    - role: system/base
      tags:
        - base
        - dev
        - system

    - role: system/i18n
      tags:
        - extra
        - i18n

    - role: system/fonts
      tags:
        - desktop
        - i18n

    - role: system/gnome
      tags:
        - desktop

    - role: system/flatpak
      tags:
        - desktop
        - system
        - flatpak

    - role: system/external_backup
      tags:
        - system
        - setup
        - backup

    - role: apps/emacs
      tags:
        - apps
        - emacs

  tasks:
    - name: Enable copr repositories
      community.general.copr:
        state: enabled
        name: "{{ item }}"
      loop:
        - cappyishihara/opentabletdriver
        - atim/lazygit
        - peterwu/iosevka
      tags:
        - system
        - copr

    # Package installations.
    - name: Install packages from enabled copr repositories
      dnf:
        state: present
        name:
          - lazygit
          - opentabletdriver
          - iosevka-fonts
          - iosevka-curly-fonts
          - iosevka-curly-slab-fonts
          - iosevka-slab-fonts
          - iosevka-etoile-fonts
      tags:
        - system
        - copr

    - name: Install RPM development tools
      dnf:
        state: present
        name:
          - rpm-build
          - go-rpm-macros
      tags:
        - dev

    - name: Install web-related tools
      dnf:
        state: present
        name:
          - thunderbird
          - chromium
          - firefox
      tags:
        - desktop

    - name: Install Fedora COPR dev't tools
      dnf:
        state: present
        name:
          - copr-cli
          - dnf-plugins-core
      tags:
        - dev

    - name: Install the extensions
      dnf:
        state: present
        name:
          - nautilus-gsconnect
          - gnome-shell-extension-gsconnect
          - gnome-shell-extension-appindicator
          - gnome-shell-extension-caffeine
          - gnome-shell-extension-just-perfection
          - gnome-shell-extension-windowsNavigator
      tags:
        - desktop

    - name: Install Ansible
      dnf:
        state: present
        name:
          - ansible
          - ansible-collection-community-general
          - python3-psutil
      tags:
        - dev