summaryrefslogtreecommitdiff
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)
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 b2b141d4de2..25f1641b32d 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -52,7 +52,8 @@
52 shepherd-service-modules 52 shepherd-service-modules
53 53
54 shepherd-action 54 shepherd-action
55 shepherd-configuration-action)) 55 shepherd-configuration-action
56 shepherd-trigger-action))
56 57
57(define-record-type* <home-shepherd-configuration> 58(define-record-type* <home-shepherd-configuration>
58 home-shepherd-configuration make-home-shepherd-configuration 59 home-shepherd-configuration make-home-shepherd-configuration
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 2a11a4f4f10..726ca5f9182 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.")
404 schedule) 404 schedule)
405 (command '(#$program)))) 405 (command '(#$program))))
406 (stop #~(make-timer-destructor)) 406 (stop #~(make-timer-destructor))
407 (actions (list (shepherd-action 407 (actions (list shepherd-trigger-action))
408 (name 'trigger)
409 (documentation "Trigger log cleanup.")
410 (procedure #~trigger-timer))))
411 (documentation "Periodically delete old log files.")))))) 408 (documentation "Periodically delete old log files."))))))
412 409
413(define log-cleanup-service-type 410(define log-cleanup-service-type
@@ -671,10 +668,7 @@ which lets you search for packages that provide a given file.")
671 ;; again. 668 ;; again.
672 #:wait-for-termination? #t)) 669 #:wait-for-termination? #t))
673 (stop #~(make-timer-destructor)) 670 (stop #~(make-timer-destructor))
674 (actions (list (shepherd-action 671 (actions (list shepherd-trigger-action)))))
675 (name 'trigger)
676 (documentation "Trigger unattended system upgrade.")
677 (procedure #~trigger-timer)))))))
678 672
679(define unattended-upgrade-service-type 673(define unattended-upgrade-service-type
680 (service-type 674 (service-type
diff --git a/gnu/services/backup.scm b/gnu/services/backup.scm
index 4d8cf167f04..6e066bd3d66 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."))
255 max-duration))) 255 max-duration)))
256 (stop 256 (stop
257 #~(make-timer-destructor)) 257 #~(make-timer-destructor))
258 (actions (list (shepherd-action 258 (actions (list shepherd-trigger-action)))))
259 (name 'trigger)
260 (documentation "Manually trigger a backup,
261without waiting for the scheduled time.")
262 (procedure #~trigger-timer)))))))
263 259
264(define (restic-guix-wrapper-package jobs) 260(define (restic-guix-wrapper-package jobs)
265 (package 261 (package
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 65c49b9c59a..e7e414b9205 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -72,6 +72,7 @@
72 shepherd-action-procedure 72 shepherd-action-procedure
73 73
74 shepherd-configuration-action 74 shepherd-configuration-action
75 shepherd-trigger-action
75 76
76 %default-modules 77 %default-modules
77 78
@@ -404,6 +405,13 @@ of the service's configuration file."
404 (format #t "~a~%" #$file) 405 (format #t "~a~%" #$file)
405 #$file)))) 406 #$file))))
406 407
408(define shepherd-trigger-action
409 ;; Action to trigger a timer.
410 (shepherd-action
411 (name 'trigger)
412 (documentation "Trigger immediate execution of this timer.")
413 (procedure #~trigger-timer)))
414
407(define (shepherd-configuration-file services shepherd) 415(define (shepherd-configuration-file services shepherd)
408 "Return the shepherd configuration file for SERVICES. SHEPHERD is used 416 "Return the shepherd configuration file for SERVICES. SHEPHERD is used
409as shepherd package." 417as shepherd package."