diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2025-03-12 11:32:54 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2025-03-23 19:29:14 +0100 |
| commit | aed019b646603171908e6d63476fe093da36ae0a (patch) | |
| tree | 97db34d1ce0cd06b5509fa1847f4cd8da578b10f | |
| parent | 6de8771a14adb98c5e082827762bb66de8f5ab83 (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.scm | 3 | ||||
| -rw-r--r-- | gnu/services/admin.scm | 10 | ||||
| -rw-r--r-- | gnu/services/backup.scm | 6 | ||||
| -rw-r--r-- | 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 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, | ||
| 261 | without 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 |
| 409 | as shepherd package." | 417 | as shepherd package." |
