[bug#77041,01/16] services: shepherd: Factorize ‘trigger’ action.
Commit Message
* 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.
Change-Id: I834b5b9b61c78f012ee9306df6cf4fd8a93dd6d2
---
gnu/services/admin.scm | 10 ++--------
gnu/services/backup.scm | 6 +-----
gnu/services/shepherd.scm | 8 ++++++++
3 files changed, 11 insertions(+), 13 deletions(-)
@@ -404,10 +404,7 @@ (define (log-cleanup-shepherd-services configuration)
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 @@ (define (unattended-upgrade-shepherd-services config)
;; 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
@@ -255,11 +255,7 @@ (define (restic-backup-job->shepherd-service config)
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
@@ -72,6 +72,7 @@ (define-module (gnu services shepherd)
shepherd-action-procedure
shepherd-configuration-action
+ shepherd-trigger-action
%default-modules
@@ -404,6 +405,13 @@ (define (shepherd-configuration-action 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."