diff options
| author | Giacomo Leidi <goodoldpaul@autistici.org> | 2025-05-17 17:09:54 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2025-05-18 22:55:53 +0200 |
| commit | 1220d1a84eaaa8a60a457fa378cd986ec2269c08 (patch) | |
| tree | 83fd23a403c792646b7afc0a2a9f380cd1b986c5 /gnu/home | |
| parent | 86022e994e5fcb3918f2d3d2f6f89b24c5562910 (diff) | |
home: Add home-restic-backup service.
* gnu/services/backup.scm: Drop mcron obsolete export.
(restic-backup-job-program): Generalize to restic-program.
(lower-restic-backup-job): New procedure implementing a standard way to
lower restic-backup-job records into lists.
(restic-program): Implement general way to run restic commands, for
example to initialize repositories.
(restic-backup-configuration): Reimplement
with (guix records).
(restic-backup-job-{logfile,command,requirement,modules}): Add new
procedures and add support for Guix Home environments.
(restic-backup-job->shepherd-service): Add support for Guix Home
environments.
(restic-backup-service-activation): Drop procedure as now the Shepherd
takes care of creating timers log file directories.
(restic-backup-service-type): Drop profile and activation services extensions.
* gnu/home/services/backup.scm: New file.
* gnu/local.mk: Add this.
* doc/guix.texi: Document this.
Change-Id: Ied1c0a5756b715fba176a0e42ea154246089e6be
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/home')
| -rw-r--r-- | gnu/home/services/backup.scm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/home/services/backup.scm b/gnu/home/services/backup.scm new file mode 100644 index 00000000000..ac977f835b6 --- /dev/null +++ b/gnu/home/services/backup.scm | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | ||
| 2 | ;;; Copyright © 2025 Giacomo Leidi <goodoldpaul@autistici.org> | ||
| 3 | ;;; | ||
| 4 | ;;; This file is part of GNU Guix. | ||
| 5 | ;;; | ||
| 6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||
| 7 | ;;; under the terms of the GNU General Public License as published by | ||
| 8 | ;;; the Free Software Foundation; either version 3 of the License, or (at | ||
| 9 | ;;; your option) any later version. | ||
| 10 | ;;; | ||
| 11 | ;;; GNU Guix is distributed in the hope that it will be useful, but | ||
| 12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | ;;; GNU General Public License for more details. | ||
| 15 | ;;; | ||
| 16 | ;;; You should have received a copy of the GNU General Public License | ||
| 17 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | ||
| 18 | |||
| 19 | (define-module (gnu home services backup) | ||
| 20 | #:use-module (gnu services) | ||
| 21 | #:use-module (gnu services backup) | ||
| 22 | #:use-module (gnu home services) | ||
| 23 | #:use-module (gnu home services shepherd) | ||
| 24 | #:export (home-restic-backup-service-type) | ||
| 25 | #:re-export (restic-backup-configuration | ||
| 26 | restic-backup-job)) | ||
| 27 | |||
| 28 | (define home-restic-backup-service-type | ||
| 29 | (service-type | ||
| 30 | (inherit (system->home-service-type restic-backup-service-type)) | ||
| 31 | (extend | ||
| 32 | (lambda (config jobs) | ||
| 33 | (for-home | ||
| 34 | (restic-backup-configuration | ||
| 35 | (inherit config) | ||
| 36 | (jobs (append (restic-backup-configuration-jobs config) | ||
| 37 | jobs)))))) | ||
| 38 | (default-value (for-home (restic-backup-configuration))))) | ||
