GNU bug report logs - #69422
[PATCH] home: services: Add home-shell-authorized-directories-service-type

Previous Next

Package: guix-patches;

Reported by: Kjartan Oli Agustsson <kjartanoli <at> outlook.com>

Date: Tue, 27 Feb 2024 10:41:01 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 69422 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to , guix-patches <at> gnu.org:
bug#69422; Package guix-patches. (Tue, 27 Feb 2024 10:41:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kjartan Oli Agustsson <kjartanoli <at> outlook.com>:
New bug report received and forwarded. Copy sent to , guix-patches <at> gnu.org. (Tue, 27 Feb 2024 10:41:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kjartan Oli Agustsson <kjartanoli <at> outlook.com>
To: guix-patches <at> gnu.org
Cc: Kjartan Oli Agustsson <kjartanoli <at> outlook.com>
Subject: [PATCH] home: services: Add
 home-shell-authorized-directories-service-type
Date: Tue, 27 Feb 2024 10:34:14 +0000
home: services: Add home-shell-authorized-directories-service-type.

* gnu/home/services/guix.scm (home-shell-authorized-directories-service-type):
  New variable.
* doc/guix.texi (Guix Home Services): Document it.

Change-Id: I3501233c79e25ceaedf981acc5805e660b52a419
---
 doc/guix.texi              | 18 ++++++++++++++++++
 gnu/home/services/guix.scm | 23 ++++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 671cdab6f8..c19f30354b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -45726,6 +45726,24 @@ Guix Home Services
 @end lisp
 @end defvar
 
+@defvar home-shell-authorized-directories-service-type
+This is the service type for managing
+@file{$XDG_CONFIG_HOME/guix/shell-authorized-directories}, the file that
+controls the loading of @file{manifest.scm} and @file{guix.scm} files by
+@command{guix shell} (@pxref{Invoking guix shell}).  Its associated
+value is a list of strings, each of which corresponds to the path of a
+directory @command{guix shell} is authorized to load @file{manifest.scm}
+and @file{guix.scm} files in.
+
+A typical extension for authorizing a directory might look like this:
+
+@lisp
+(simple-service 'authorised-direcotries
+       home-shell-authorized-directories-service-type
+     (list "~/guix" "some/other/project/"))
+@end lisp
+@end defvar
+
 @node Fonts Home Services
 @subsection Fonts Home Services
 
diff --git a/gnu/home/services/guix.scm b/gnu/home/services/guix.scm
index 819b20b6c9..49265a1c45 100644
--- a/gnu/home/services/guix.scm
+++ b/gnu/home/services/guix.scm
@@ -22,7 +22,9 @@ (define-module (gnu home services guix)
   #:use-module (guix gexp)
   #:use-module (ice-9 pretty-print)
   #:use-module (srfi srfi-1)
-  #:export (home-channels-service-type))
+  #:use-module (srfi srfi-26)
+  #:export (home-channels-service-type
+            home-shell-authorized-directories-service-type))
 
 (define (channels-xdg-files channels)
   `(("guix/channels.scm"
@@ -42,3 +44,22 @@ (define home-channels-service-type
     (list (service-extension home-xdg-configuration-files-service-type
                              channels-xdg-files)))
    (description "Manages the per-user Guix channels specification.")))
+
+(define (shell-authorized-directories-files directories)
+  `(("guix/shell-authorized-directories"
+     ,(plain-file
+       "shell-authorized-directories"
+       (call-with-output-string
+         (lambda (port)
+           (map (cut format port "~a~%" <>) directories)))))))
+
+(define home-shell-authorized-directories-service-type
+  (service-type
+   (name 'shell-authorized-directories)
+   (default-value '())
+   (compose concatenate)
+   (extend append)
+   (extensions
+    (list (service-extension home-xdg-configuration-files-service-type
+                             shell-authorized-directories-files)))
+   (description "Manages guix shell authorized directories.")))

base-commit: de24aaf13b17d6c019f3f240fd0eb0e1b8654970
-- 
2.41.0





This bug report was last modified 265 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.