me
/
guix
Archived
1
0
Fork 0

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.
master
Ludovic Courtès 2021-10-30 16:35:06 +02:00
parent bcce83c785
commit 98173af522
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 7 additions and 4 deletions

View File

@ -283,7 +283,8 @@ Return the modified OPTS."
("guix.scm" (alist-cons 'load `(package ,file) opts)) ("guix.scm" (alist-cons 'load `(package ,file) opts))
("manifest.scm" (alist-cons 'manifest file opts)))) ("manifest.scm" (alist-cons 'manifest file opts))))
(begin (begin
(warning (G_ "not loading '~a' because not authorized to do so~%") (report-error
(G_ "not loading '~a' because not authorized to do so~%")
file) file)
(display-hint (format #f (G_ "To allow automatic loading of (display-hint (format #f (G_ "To allow automatic loading of
@file{~a} when running @command{guix shell}, you must explicitly authorize its @file{~a} when running @command{guix shell}, you must explicitly authorize its
@ -295,7 +296,7 @@ echo ~a >> ~a
file file
(dirname file) (dirname file)
(authorized-directory-file))) (authorized-directory-file)))
opts)))))) (exit 1)))))))
;;; ;;;

View File

@ -39,7 +39,9 @@ guix shell --bootstrap --pure guile-bootstrap -- guile --version
cat > "$tmpdir/guix.scm" <<EOF cat > "$tmpdir/guix.scm" <<EOF
This is a broken guix.scm file. This is a broken guix.scm file.
EOF 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. # Authorize the directory.
echo "$(realpath "$tmpdir")" > "$configdir/guix/shell-authorized-directories" echo "$(realpath "$tmpdir")" > "$configdir/guix/shell-authorized-directories"