diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-10-30 16:35:06 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-10-30 19:12:40 +0200 |
commit | 98173af5222ab5e879e44ba9521dec5416ba8c60 (patch) | |
tree | 5dbe15aefc74edd98223c6d06bd3b9eeb43c3a58 | |
parent | bcce83c7857d226a053a8563fc4e326a47fca473 (diff) | |
download | guix-98173af5222ab5e879e44ba9521dec5416ba8c60.tar.gz guix-98173af5222ab5e879e44ba9521dec5416ba8c60.zip |
shell: Error out when an unauthorized guix.scm/manifest.scm is found.
The previous behavior was confusing: a warning would be printed and
'guix shell' would go on starting an empty environment.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.
* guix/scripts/shell.scm (auto-detect-manifest): Change "not loading"
case from warning to error.
* tests/guix-shell.sh: Adjust accordingly.
-rw-r--r-- | guix/scripts/shell.scm | 7 | ||||
-rw-r--r-- | tests/guix-shell.sh | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index c7eba429d5..5749485a44 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -283,8 +283,9 @@ Return the modified OPTS." ("guix.scm" (alist-cons 'load `(package ,file) opts)) ("manifest.scm" (alist-cons 'manifest file opts)))) (begin - (warning (G_ "not loading '~a' because not authorized to do so~%") - file) + (report-error + (G_ "not loading '~a' because not authorized to do so~%") + file) (display-hint (format #f (G_ "To allow automatic loading of @file{~a} when running @command{guix shell}, you must explicitly authorize its directory, like so: @@ -295,7 +296,7 @@ echo ~a >> ~a file (dirname file) (authorized-directory-file))) - opts)))))) + (exit 1))))))) ;;; diff --git a/tests/guix-shell.sh b/tests/guix-shell.sh index 95725cba2d..3bdf625189 100644 --- a/tests/guix-shell.sh +++ b/tests/guix-shell.sh @@ -39,7 +39,9 @@ guix shell --bootstrap --pure guile-bootstrap -- guile --version cat > "$tmpdir/guix.scm" <<EOF This is a broken guix.scm file. EOF -(cd "$tmpdir"; SHELL="$(type -P true)" guix shell --bootstrap) +! (cd "$tmpdir"; SHELL="$(type -P true)" guix shell --bootstrap 2> "stderr") +grep "not authorized" "$tmpdir/stderr" +rm "$tmpdir/stderr" # Authorize the directory. echo "$(realpath "$tmpdir")" > "$configdir/guix/shell-authorized-directories" |