diff --git a/roles/flatpak/defaults/main.yml b/roles/flatpak/defaults/main.yml index 79ecd00..fd395ba 100644 --- a/roles/flatpak/defaults/main.yml +++ b/roles/flatpak/defaults/main.yml @@ -1,3 +1,4 @@ --- flatpak_configure_remotes: true flatpak_alter_flatpaks: true +flatpak_automatic_updates: true diff --git a/roles/flatpak/files/flatpak-automatic.service b/roles/flatpak/files/flatpak-automatic.service new file mode 100644 index 0000000..b4154c0 --- /dev/null +++ b/roles/flatpak/files/flatpak-automatic.service @@ -0,0 +1,8 @@ +[Unit] +Description=flatpak Automatic Update +Documentation=man:flatpak(1) + +[Service] +Type=simple +ExecStartPre=/bin/sh -c 'until ping -c1 google.com; do sleep 1; done;' +ExecStart=/usr/bin/flatpak update -y diff --git a/roles/flatpak/files/flatpak-automatic.timer b/roles/flatpak/files/flatpak-automatic.timer new file mode 100644 index 0000000..df55ed3 --- /dev/null +++ b/roles/flatpak/files/flatpak-automatic.timer @@ -0,0 +1,11 @@ +[Unit] +Description=flatpak Automatic Update Trigger +Documentation=man:flatpak(1) + +[Timer] +OnBootSec=1m +OnCalendar=*-*-* *:00:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/roles/flatpak/handlers/main.yml b/roles/flatpak/handlers/main.yml new file mode 100644 index 0000000..d39d6df --- /dev/null +++ b/roles/flatpak/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: Enable flatpak-automatic + ansible.builtin.systemd: + name: flatpak-automatic.timer + state: started + enabled: yes + daemon_reload: yes + become: yes diff --git a/roles/flatpak/tasks/flatpaks.yml b/roles/flatpak/tasks/flatpaks.yml new file mode 100644 index 0000000..3d53ca3 --- /dev/null +++ b/roles/flatpak/tasks/flatpaks.yml @@ -0,0 +1,12 @@ +--- +- name: Merge Flatpaks and overwrites + set_fact: + flatpak_flatpaks: '{{ flatpak_flatpaks | combine(flatpak_flatpaks_overwrite) }}' + when: flatpak_flatpaks_overwrite | default() + +- name: Add/remove Flatpaks + community.general.flatpak: + name: "{{ item.key }}" + state: "{{ item.value.state }}" + remote: "{{ item.value.remote }}" + loop: "{{ lookup('dict', flatpak_flatpaks, wantlist=True) }}" diff --git a/roles/flatpak/tasks/main.yml b/roles/flatpak/tasks/main.yml index 37ca42d..4b26731 100644 --- a/roles/flatpak/tasks/main.yml +++ b/roles/flatpak/tasks/main.yml @@ -1,27 +1,23 @@ --- -- name: Merge Flatpak remotes and overwrites - set_fact: - flatpak_remotes: '{{ flatpak_remotes | combine(flatpak_remotes_overwrite) }}' - when: flatpak_remotes_overwrite | default() - -- name: Add/remove Flatpak remotes - community.general.flatpak_remote: - name: "{{ item.key }}" - state: "{{ item.value.state }}" - flatpakrepo_url: "{{ item.value.url }}" - become: true - loop: "{{ lookup('dict', flatpak_remotes, wantlist=True) }}" +- name: Include remotes.yml + ansible.builtin.include: remotes.yml when: flatpak_configure_remotes | bool -- name: Merge Flatpaks and overwrites - set_fact: - flatpak_flatpaks: '{{ flatpak_flatpaks | combine(flatpak_flatpaks_overwrite) }}' - when: flatpak_flatpaks_overwrite | default() - -- name: Add/remove Flatpaks - community.general.flatpak: - name: "{{ item.key }}" - state: "{{ item.value.state }}" - remote: "{{ item.value.remote }}" - loop: "{{ lookup('dict', flatpak_flatpaks, wantlist=True) }}" +- name: Include flatpaks.yml + ansible.builtin.include: flatpaks.yml when: flatpak_alter_flatpaks | bool + +- name: Enable flatpak Automatic Update + ansible.builtin.copy: + src: "{{ item }}" + dest: "/etc/systemd/system/{{ item }}" + owner: root + group: root + mode: '0644' + become: yes + with_items: + - flatpak-automatic.service + - flatpak-automatic.timer + notify: + - Enable flatpak-automatic + when: flatpak_automatic_updates | bool diff --git a/roles/flatpak/tasks/remotes.yml b/roles/flatpak/tasks/remotes.yml new file mode 100644 index 0000000..090975b --- /dev/null +++ b/roles/flatpak/tasks/remotes.yml @@ -0,0 +1,13 @@ +--- +- name: Merge Flatpak remotes and overwrites + set_fact: + flatpak_remotes: '{{ flatpak_remotes | combine(flatpak_remotes_overwrite) }}' + when: flatpak_remotes_overwrite | default() + +- name: Add/remove Flatpak remotes + community.general.flatpak_remote: + name: "{{ item.key }}" + state: "{{ item.value.state }}" + flatpakrepo_url: "{{ item.value.url }}" + become: true + loop: "{{ lookup('dict', flatpak_remotes, wantlist=True) }}"