From f9f432bacedcfc57dd5e613685812984eeb35b25 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Tue, 20 Aug 2024 20:42:24 -0300 Subject: packages.scm: Add syskeep-activation to syskeep-service-type --- src/org/euandre/packages.scm | 55 +++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 24 deletions(-) (limited to 'src/org') 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* @@ -510,6 +534,11 @@ "init.scm" "gitconfig")))) +(define (syskeep-activation config) + (match-record config + (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 -- cgit v1.2.3