From de59ed760bbb36443dd77120a48058aead1cdbd1 Mon Sep 17 00:00:00 2001 From: Pig Monkey Date: Mon, 16 Sep 2024 15:56:35 -0700 Subject: [PATCH] add wait variable for goimapnotify Previously `wait` could be defined in the user's config file, but in the new release it appears to only be supported as a flag, so we have to override the systemd service. --- group_vars/all | 1 + playbook.yml | 1 + roles/goimapnotify/tasks/main.yml | 19 +++++++++++++++++++ .../goimapnotify-service-override.conf.j2 | 3 +++ roles/mail/tasks/goimapnotify.yml | 0 roles/mail/tasks/main.yml | 5 ----- roles/systemd/handlers/main.yml | 7 +++++++ 7 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 roles/goimapnotify/tasks/main.yml create mode 100644 roles/goimapnotify/templates/goimapnotify-service-override.conf.j2 create mode 100644 roles/mail/tasks/goimapnotify.yml diff --git a/group_vars/all b/group_vars/all index 27922ae..c9c1d07 100644 --- a/group_vars/all +++ b/group_vars/all @@ -49,6 +49,7 @@ mail: sync_time: 10min sync_boot_delay: 2min sync_on: trusted + goimapnotify_wait: 10 network: conn_check: False diff --git a/playbook.yml b/playbook.yml index 01a88cd..0a8b4fd 100644 --- a/playbook.yml +++ b/playbook.yml @@ -52,6 +52,7 @@ - { role: taskwarrior, tags: ['taskwarrior'] } - { role: ledger, tags: ['ledger'] } - { role: mail, tags: ['mail'] } + - { role: goimapnotify, tags: ['goimapnotify'] } - { role: cups, tags: ['cups'] } - { role: office, tags: ['office'] } - { role: visidata, tags: ['visidata'] } diff --git a/roles/goimapnotify/tasks/main.yml b/roles/goimapnotify/tasks/main.yml new file mode 100644 index 0000000..6f4785b --- /dev/null +++ b/roles/goimapnotify/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: Install goimapnotify + pacman: + name: goimapnotify + state: present + +- name: Create goimapnotify service override directory + file: + path: /etc/systemd/user/goimapnotify@.service.d + state: directory + when: mail.goimapnotify_wait is defined + +- name: Push goimapnotify service override file + template: + src: goimapnotify-service-override.conf.j2 + dest: /etc/systemd/user/goimapnotify@.service.d/override.conf + when: mail.goimapnotify_wait is defined + notify: + - reload user systemd config diff --git a/roles/goimapnotify/templates/goimapnotify-service-override.conf.j2 b/roles/goimapnotify/templates/goimapnotify-service-override.conf.j2 new file mode 100644 index 0000000..b665321 --- /dev/null +++ b/roles/goimapnotify/templates/goimapnotify-service-override.conf.j2 @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=/usr/bin/goimapnotify -conf %h/.config/imapnotify/%i.yaml -wait {{ mail.goimapnotify_wait }} diff --git a/roles/mail/tasks/goimapnotify.yml b/roles/mail/tasks/goimapnotify.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/mail/tasks/main.yml b/roles/mail/tasks/main.yml index 48553b6..6e0b7aa 100644 --- a/roles/mail/tasks/main.yml +++ b/roles/mail/tasks/main.yml @@ -76,11 +76,6 @@ regexp: "^x-scheme-handler/mailto=" line: "x-scheme-handler/mailto=mutt.desktop" -- name: Install goimapnotify - pacman: - name: goimapnotify - state: present - - include_tasks: msmtp.yml - include_tasks: isync.yml #- include_tasks: offlineimap.yml diff --git a/roles/systemd/handlers/main.yml b/roles/systemd/handlers/main.yml index 63f3192..aa45a8e 100644 --- a/roles/systemd/handlers/main.yml +++ b/roles/systemd/handlers/main.yml @@ -1,3 +1,10 @@ --- - name: reload systemd config command: systemctl daemon-reload + +- name: reload user systemd config + command: systemctl --user daemon-reload + become: yes + become_user: "{{ user.name }}" + environment: + XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"