diff --git a/config/ansible/tasks/workstations/flatpaks.yml b/config/ansible/tasks/workstations/flatpaks.yml index fcb0556..119503a 100644 --- a/config/ansible/tasks/workstations/flatpaks.yml +++ b/config/ansible/tasks/workstations/flatpaks.yml @@ -4,14 +4,30 @@ flatpakrepo_url: https://flathub.org/repo/flathub.flatpakrepo state: present -- name: Get list of installed Flatpaks - ansible.builtin.command: flatpak list --app --columns=application - register: installed_flatpaks +- name: Get list of system installed Flatpaks + ansible.builtin.command: flatpak list --system --app --columns=application + register: installed_system_flatpaks changed_when: false -- name: Define desired Flatpaks +- name: Get list of system remotes + ansible.builtin.command: flatpak remote-list --system --columns=name + register: system_remotes + changed_when: false + +- name: Get list of user installed Flatpaks + ansible.builtin.command: flatpak list --user --app --columns=application + register: installed_user_flatpaks + changed_when: false + +- name: Get list of user remotes + ansible.builtin.command: flatpak remote-list --user --columns=name + register: user_remotes + changed_when: false + + +- name: Define system desired Flatpaks ansible.builtin.set_fact: - desired_flatpaks: + desired_system_flatpaks: - org.fkoehler.KTailctl - org.mozilla.Thunderbird - io.github.kukuruzka165.materialgram @@ -50,19 +66,80 @@ - io.github.nokse22.Exhibit - net.nokyan.Resources - dev.zed.Zed - - com.discordapp.Discord + - so.libdb.dissent - page.tesk.Refine - io.github.flattool.Ignition - io.github.bytezz.IPLookup -- name: Install/Upgrade Flatpak packages +- name: Define system desired Flatpak remotes + ansible.builtin.set_fact: + desired_system_flatpak_remotes: + - flathub + - fedora + +- name: Define user desired Flatpaks + ansible.builtin.set_fact: + desired_user_flatpaks: + - com.discordapp.Discord + - io.github.moonlight_mod.moonlight-installer + +- name: Define user desired Flatpak remotes + ansible.builtin.set_fact: + desired_user_flatpak_remotes: + - flathub + +- name: Add desired user Flatpak remotes + community.general.flatpak_remote: + name: "{{ item }}" + state: present + method: user + loop: "{{ desired_user_flatpak_remotes }}" + +- name: Add desired system Flatpak remotes + community.general.flatpak_remote: + name: "{{ item }}" + state: present + method: system + loop: "{{ desired_system_flatpak_remotes }}" + +- name: Remove undesired user Flatpak remotes + community.general.flatpak_remote: + name: "{{ item }}" + state: absent + method: user + loop: "{{ user_remotes.stdout_lines | difference(desired_user_flatpak_remotes) }}" + +- name: Remove undesired system Flatpak remotes + community.general.flatpak_remote: + name: "{{ item }}" + state: absent + method: system + loop: "{{ system_remotes.stdout_lines | difference(desired_system_flatpak_remotes) }}" + +- name: Install desired user Flatpaks community.general.flatpak: name: "{{ item }}" state: present - loop: "{{ desired_flatpaks }}" + method: user + loop: "{{ desired_user_flatpaks }}" -- name: Remove undesired Flatpak packages +- name: Install desired system Flatpaks + community.general.flatpak: + name: "{{ item }}" + state: present + method: system + loop: "{{ desired_system_flatpaks }}" + +- name: Remove undesired user Flatpaks community.general.flatpak: name: "{{ item }}" state: absent - loop: "{{ installed_flatpaks.stdout_lines | difference(desired_flatpaks) }}" + method: user + loop: "{{ installed_user_flatpaks.stdout_lines | difference(desired_user_flatpaks) }}" + +- name: Remove undesired system Flatpaks + community.general.flatpak: + name: "{{ item }}" + state: absent + method: system + loop: "{{ installed_system_flatpaks.stdout_lines | difference(desired_system_flatpaks) }}"