diff options
| author | EuAndreh <eu@euandre.org> | 2024-08-19 11:15:55 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2024-08-19 11:15:55 -0300 |
| commit | 88b3ed72e20520b8829842c5a9105a2bb07aacfb (patch) | |
| tree | 6b342bf2fd219dd38d262255f0c6bc9ef8de3f9d /src/org/euandre | |
| parent | queue.scm: Use inline definition of slurp (diff) | |
| download | packages-88b3ed72e20520b8829842c5a9105a2bb07aacfb.tar.gz packages-88b3ed72e20520b8829842c5a9105a2bb07aacfb.tar.xz | |
packages.scm: Factor out (activation-gexp ...) into its own function
Diffstat (limited to 'src/org/euandre')
| -rw-r--r-- | src/org/euandre/packages.scm | 47 |
1 files changed, 25 insertions, 22 deletions
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) |
