civodul pushed a commit to branch master
in repository guix.

commit aed019b646603171908e6d63476fe093da36ae0a
Author: Ludovic Courtès <l...@gnu.org>
AuthorDate: Wed Mar 12 11:32:54 2025 +0100

    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.courno...@gmail.com>
    Change-Id: I834b5b9b61c78f012ee9306df6cf4fd8a93dd6d2
---
 gnu/home/services/shepherd.scm |  3 ++-
 gnu/services/admin.scm         | 10 ++--------
 gnu/services/backup.scm        |  6 +-----
 gnu/services/shepherd.scm      |  8 ++++++++
 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."

Reply via email to