aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2025-03-12 11:32:54 +0100
committerLudovic Courtès <ludo@gnu.org>2025-03-23 19:29:14 +0100
commitaed019b646603171908e6d63476fe093da36ae0a (patch)
tree97db34d1ce0cd06b5509fa1847f4cd8da578b10f
parent6de8771a14adb98c5e082827762bb66de8f5ab83 (diff)
downloadguix-aed019b646603171908e6d63476fe093da36ae0a.tar.gz
guix-aed019b646603171908e6d63476fe093da36ae0a.zip
services: shepherd: Factorize ‘trigger’ action.
* gnu/services/shepherd.scm (shepherd-trigger-action): New variable. * gnu/services/admin.scm (log-cleanup-shepherd-services) (unattended-upgrade-shepherd-services): Use it. * gnu/services/backup.scm (restic-backup-job->shepherd-service): Use it. * gnu/home/services/shepherd.scm: Re-export ‘shepherd-trigger-action’. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I834b5b9b61c78f012ee9306df6cf4fd8a93dd6d2
-rw-r--r--gnu/home/services/shepherd.scm3
-rw-r--r--gnu/services/admin.scm10
-rw-r--r--gnu/services/backup.scm6
-rw-r--r--gnu/services/shepherd.scm8
4 files changed, 13 insertions, 14 deletions
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index b2b141d4de..25f1641b32 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -52,7 +52,8 @@
shepherd-service-modules
shepherd-action
- shepherd-configuration-action))
+ shepherd-configuration-action
+ shepherd-trigger-action))
(define-record-type* <home-shepherd-configuration>
home-shepherd-configuration make-home-shepherd-configuration
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 2a11a4f4f1..726ca5f918 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -404,10 +404,7 @@ This service is deprecated and slated for removal after 2025-06-15.")
schedule)
(command '(#$program))))
(stop #~(make-timer-destructor))
- (actions (list (shepherd-action
- (name 'trigger)
- (documentation "Trigger log cleanup.")
- (procedure #~trigger-timer))))
+ (actions (list shepherd-trigger-action))
(documentation "Periodically delete old log files."))))))
(define log-cleanup-service-type
@@ -671,10 +668,7 @@ which lets you search for packages that provide a given file.")
;; again.
#:wait-for-termination? #t))
(stop #~(make-timer-destructor))
- (actions (list (shepherd-action
- (name 'trigger)
- (documentation "Trigger unattended system upgrade.")
- (procedure #~trigger-timer)))))))
+ (actions (list shepherd-trigger-action)))))
(define unattended-upgrade-service-type
(service-type
diff --git a/gnu/services/backup.scm b/gnu/services/backup.scm
index 4d8cf167f0..6e066bd3d6 100644
--- a/gnu/services/backup.scm
+++ b/gnu/services/backup.scm
@@ -255,11 +255,7 @@ command-line arguments to the current job @command{restic backup} invocation."))
max-duration)))
(stop
#~(make-timer-destructor))
- (actions (list (shepherd-action
- (name 'trigger)
- (documentation "Manually trigger a backup,
-without waiting for the scheduled time.")
- (procedure #~trigger-timer)))))))
+ (actions (list shepherd-trigger-action)))))
(define (restic-guix-wrapper-package jobs)
(package
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 65c49b9c59..e7e414b920 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -72,6 +72,7 @@
shepherd-action-procedure
shepherd-configuration-action
+ shepherd-trigger-action
%default-modules
@@ -404,6 +405,13 @@ of the service's configuration file."
(format #t "~a~%" #$file)
#$file))))
+(define shepherd-trigger-action
+ ;; Action to trigger a timer.
+ (shepherd-action
+ (name 'trigger)
+ (documentation "Trigger immediate execution of this timer.")
+ (procedure #~trigger-timer)))
+
(define (shepherd-configuration-file services shepherd)
"Return the shepherd configuration file for SERVICES. SHEPHERD is used
as shepherd package."