refactor
This commit is contained in:
116
ansible/tasks/workstations/flatpaks.yml
Normal file
116
ansible/tasks/workstations/flatpaks.yml
Normal file
@@ -0,0 +1,116 @@
|
||||
---
|
||||
- name: Check if Flatpak is installed
|
||||
ansible.builtin.command: which flatpak
|
||||
register: flatpak_check
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Install Flatpak
|
||||
ansible.builtin.package:
|
||||
name: flatpak
|
||||
state: present
|
||||
become: true
|
||||
when: flatpak_check.rc != 0
|
||||
|
||||
- name: Add Flathub remote repository
|
||||
community.general.flatpak_remote:
|
||||
name: flathub
|
||||
flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
state: present
|
||||
|
||||
- name: Get list of system installed Flatpaks
|
||||
ansible.builtin.command: flatpak list --system --app --columns=application
|
||||
register: installed_system_flatpaks
|
||||
changed_when: false
|
||||
|
||||
- name: Get list of system remotes
|
||||
ansible.builtin.command: flatpak remote-list --system --columns=name
|
||||
register: system_remotes
|
||||
changed_when: false
|
||||
|
||||
- name: Define system desired Flatpaks
|
||||
ansible.builtin.set_fact:
|
||||
desired_system_flatpaks:
|
||||
# GNOME Software
|
||||
- "{{ 'org.gnome.Extensions' if (ansible_facts.env.XDG_CURRENT_DESKTOP is defined and 'GNOME' in ansible_facts.env.XDG_CURRENT_DESKTOP) else omit }}"
|
||||
- "{{ 'org.gnome.Weather' if (ansible_facts.env.XDG_CURRENT_DESKTOP is defined and 'GNOME' in ansible_facts.env.XDG_CURRENT_DESKTOP) else omit }}"
|
||||
- "{{ 'org.gnome.Sudoku' if (ansible_facts.env.XDG_CURRENT_DESKTOP is defined and 'GNOME' in ansible_facts.env.XDG_CURRENT_DESKTOP) else omit }}"
|
||||
|
||||
# Games
|
||||
- io.github.openhv.OpenHV
|
||||
- info.beyondallreason.bar
|
||||
- org.godotengine.Godot
|
||||
- dev.bragefuglseth.Keypunch
|
||||
- org.prismlauncher.PrismLauncher
|
||||
|
||||
# Multimedia
|
||||
- com.plexamp.Plexamp
|
||||
- tv.plex.PlexDesktop
|
||||
|
||||
# Messaging
|
||||
- com.rtosta.zapzap
|
||||
- org.telegram.desktop
|
||||
- org.signal.Signal
|
||||
- com.spotify.Client
|
||||
|
||||
# Nextcloud Compatible Utilities
|
||||
- io.github.mrvladus.List
|
||||
- org.gnome.World.Iotas
|
||||
|
||||
# 3D Printing
|
||||
- com.bambulab.BambuStudio
|
||||
- io.mango3d.LycheeSlicer
|
||||
|
||||
# Utilities
|
||||
- com.ranfdev.DistroShelf
|
||||
- io.missioncenter.MissionCenter
|
||||
- io.gitlab.elescoute.spacelaunch
|
||||
- org.fkoehler.KTailctl
|
||||
- com.usebottles.bottles
|
||||
- com.github.tchx84.Flatseal
|
||||
- com.github.wwmm.easyeffects
|
||||
- io.gitlab.adhami3310.Impression
|
||||
- io.ente.auth
|
||||
- io.github.fastrizwaan.WineZGUI
|
||||
- net.davidotek.pupgui2
|
||||
- com.mastermindzh.tidal-hifi
|
||||
- io.github.flattool.Warehouse
|
||||
- io.github.johannesboehler2.BmiCalculator
|
||||
- io.github.nokse22.Exhibit
|
||||
- net.nokyan.Resources
|
||||
- io.github.flattool.Ignition
|
||||
- io.github.bytezz.IPLookup
|
||||
- org.gaphor.Gaphor
|
||||
|
||||
- name: Define system desired Flatpak remotes
|
||||
ansible.builtin.set_fact:
|
||||
desired_system_flatpak_remotes:
|
||||
- flathub
|
||||
|
||||
- name: Add desired system Flatpak remotes
|
||||
community.general.flatpak_remote:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
method: system
|
||||
loop: "{{ desired_system_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/Upgrade Flatpak packages
|
||||
community.general.flatpak:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
method: system
|
||||
loop: "{{ desired_system_flatpaks | reject('equalto', omit) | list }}"
|
||||
|
||||
- name: Remove undesired system Flatpaks
|
||||
community.general.flatpak:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
method: system
|
||||
loop: "{{ installed_system_flatpaks.stdout_lines | difference(desired_system_flatpaks | reject('equalto', omit) | list) }}"
|
||||
Reference in New Issue
Block a user