summaryrefslogtreecommitdiff
path: root/roles/ws/flatpak
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2024-06-16 12:19:06 +0200
committerChristian Pointner <equinox@spreadspace.org>2024-06-16 12:19:06 +0200
commite58a0d0d2f395cbb3d7894b81a1e3ed2692314ec (patch)
tree4624a3b1ed8f0cd8308a826d0fc106c1fa8cd71f /roles/ws/flatpak
parentremove cleanup no longer needed tasks from apt-repo roles (diff)
flatpak: install freecad via flatpak allow multiple command shortcuts per app
Diffstat (limited to 'roles/ws/flatpak')
-rw-r--r--roles/ws/flatpak/defaults/main.yml5
-rw-r--r--roles/ws/flatpak/filter_plugins/flatpak.py28
-rw-r--r--roles/ws/flatpak/tasks/main.yml9
3 files changed, 36 insertions, 6 deletions
diff --git a/roles/ws/flatpak/defaults/main.yml b/roles/ws/flatpak/defaults/main.yml
index e66d4118..77f1f39d 100644
--- a/roles/ws/flatpak/defaults/main.yml
+++ b/roles/ws/flatpak/defaults/main.yml
@@ -6,5 +6,8 @@ ws_flatpak_apps: []
# ws_flatpak_apps:
# - name: com.example.foo
# remote: foo
-# link: foo
+# shortcuts:
+# - name: foo
+# - name: foo-blub
+# command: blub
# - name: com.example.bar
diff --git a/roles/ws/flatpak/filter_plugins/flatpak.py b/roles/ws/flatpak/filter_plugins/flatpak.py
new file mode 100644
index 00000000..0ed372ee
--- /dev/null
+++ b/roles/ws/flatpak/filter_plugins/flatpak.py
@@ -0,0 +1,28 @@
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+from ansible import errors
+
+
+def flatpak_app_shortcuts(apps):
+ try:
+ shortcuts = []
+ for app in apps:
+ if 'shortcuts' not in app:
+ continue
+ for shortcut in app['shortcuts']:
+ shortcut['app'] = app['name']
+ shortcuts.append(shortcut)
+ return shortcuts
+ except Exception as e:
+ raise errors.AnsibleFilterError("flatpak_app_shortcuts(): %s" % str(e))
+
+
+class FilterModule(object):
+
+ filter_map = {
+ 'flatpak_app_shortcuts': flatpak_app_shortcuts,
+ }
+
+ def filters(self):
+ return self.filter_map
diff --git a/roles/ws/flatpak/tasks/main.yml b/roles/ws/flatpak/tasks/main.yml
index 5229996c..e88be377 100644
--- a/roles/ws/flatpak/tasks/main.yml
+++ b/roles/ws/flatpak/tasks/main.yml
@@ -23,13 +23,12 @@
state: present
- name: install simple run script to /usr/local/bin
- loop: "{{ ws_flatpak_apps | selectattr('link', 'defined') }}"
+ loop: "{{ ws_flatpak_apps | flatpak_app_shortcuts }}"
loop_control:
- label: "{{ item.name }}"
+ label: "{{ item.name }} -> {{ item.app }}"
copy:
content: |
#!/bin/sh
-
- exec flatpak run "{{ item.name }}"
- dest: "/usr/local/bin/{{ item.link }}"
+ exec flatpak run{% if 'command' in item %} "--command={{ item.command }}"{% endif %} "{{ item.app }}"
+ dest: "/usr/local/bin/{{ item.name }}"
mode: 0755