From 88b3ed72e20520b8829842c5a9105a2bb07aacfb Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 19 Aug 2024 11:15:55 -0300 Subject: packages.scm: Factor out (activation-gexp ...) into its own function --- src/org/euandre/packages.scm | 47 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/org/euandre/packages.scm b/src/org/euandre/packages.scm index c5e8287..60d7402 100644 --- a/src/org/euandre/packages.scm +++ b/src/org/euandre/packages.scm @@ -718,33 +718,36 @@ (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 (($ config-type name _package user _group 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)))))))) + (activation-gexp name user log-file data-directory run-directory))))) (define-public (accounts-for config-type) (lambda (config) -- cgit v1.3