diff options
| author | EuAndreh <eu@euandre.org> | 2024-08-20 20:42:24 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2024-08-20 20:42:55 -0300 |
| commit | f9f432bacedcfc57dd5e613685812984eeb35b25 (patch) | |
| tree | 995f0903556b61e18dcfd646fd53a75f04deeeff /src/org | |
| parent | packages.scm: Update syskeep package (diff) | |
| download | packages-f9f432bacedcfc57dd5e613685812984eeb35b25.tar.gz packages-f9f432bacedcfc57dd5e613685812984eeb35b25.tar.xz | |
packages.scm: Add syskeep-activation to syskeep-service-type
Diffstat (limited to 'src/org')
| -rw-r--r-- | src/org/euandre/packages.scm | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/src/org/euandre/packages.scm b/src/org/euandre/packages.scm index 1bb0bc1..17bee92 100644 --- a/src/org/euandre/packages.scm +++ b/src/org/euandre/packages.scm @@ -444,6 +444,30 @@ (rc-file (file-append q:rottlog-mailutils-sendmail "/etc/rc")))))) +(define-public (activation-gexp name user log-file data-directory run-directory) + #~(begin + (use-modules (guix build utils)) + (when #$log-file + (format (current-error-port) + "Creating ~a log directory for '~a'.~%" #$name #$log-file) + (mkdir-p (dirname #$log-file)) + (when (not (file-exists? #$log-file)) + (call-with-output-file #$log-file (const #t))) + (chmod #$log-file #o644)) + (let ((user (getpwnam #$user))) + (when #$data-directory + (format (current-error-port) + "Creating ~a data directory '~a'.~%" #$name #$data-directory) + (mkdir-p #$data-directory) + (chown #$data-directory (passwd:uid user) (passwd:gid user)) + (chmod #$data-directory #o750)) + (when #$run-directory + (format (current-error-port) + "Creating ~a run directory '~a'.~%" #$name #$run-directory) + (mkdir-p #$run-directory) + (chown #$run-directory (passwd:uid user) (passwd:gid user)) + (chmod #$run-directory #o755))))) + (define-record-type* <syskeep-configuration> @@ -510,6 +534,11 @@ "init.scm" "gitconfig")))) +(define (syskeep-activation config) + (match-record config <syskeep-configuration> + (log-file) + (activation-gexp "syskeep" "root" log-file #f #f))) + (define-public syskeep-service-type (service-type (name 'syskeep) @@ -521,6 +550,8 @@ syskeep-cronjobs) (service-extension etc-service-type syskeep-etc-files) + (service-extension activation-service-type + syskeep-activation) (service-extension profile-service-type syskeep-profile))) (default-value (syskeep-configuration)) @@ -723,30 +754,6 @@ (files (list log-file)) (options '("rotate 5200")))))))) -(define-public (activation-gexp name user log-file data-directory run-directory) - #~(begin - (use-modules (guix build utils)) - (when #$log-file - (format (current-error-port) - "Creating ~a log directory for '~a'.~%" #$name #$log-file) - (mkdir-p (dirname #$log-file)) - (when (not (file-exists? #$log-file)) - (call-with-output-file #$log-file (const #t))) - (chmod #$log-file #o644)) - (let ((user (getpwnam #$user))) - (when #$data-directory - (format (current-error-port) - "Creating ~a data directory '~a'.~%" #$name #$data-directory) - (mkdir-p #$data-directory) - (chown #$data-directory (passwd:uid user) (passwd:gid user)) - (chmod #$data-directory #o750)) - (when #$run-directory - (format (current-error-port) - "Creating ~a run directory '~a'.~%" #$name #$run-directory) - (mkdir-p #$run-directory) - (chown #$run-directory (passwd:uid user) (passwd:gid user)) - (chmod #$run-directory #o755))))) - (define-public (activation-for config-type) (lambda (config) (m:match config |
