aboutsummaryrefslogtreecommitdiff
path: root/src/org/euandre
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-08-19 11:15:55 -0300
committerEuAndreh <eu@euandre.org>2024-08-19 11:15:55 -0300
commit88b3ed72e20520b8829842c5a9105a2bb07aacfb (patch)
tree6b342bf2fd219dd38d262255f0c6bc9ef8de3f9d /src/org/euandre
parentqueue.scm: Use inline definition of slurp (diff)
downloadpackages-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.scm47
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)