diff --git a/doc/guix.texi b/doc/guix.texi index 7fcfcb1454..1b77881eb6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4456,17 +4456,18 @@ that will be added to the environment directly. @item --pure Unset existing environment variables when building the new environment, except -those specified with @option{--inherit} (see below.) This has the effect of +those specified with @option{--preserve} (see below.) This has the effect of creating an environment in which search paths only contain package inputs. -@item --inherit=@var{regexp} -When used alongside @option{--pure}, inherit all the environment variables +@item --preserve=@var{regexp} +@itemx -E @var{regexp} +When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved. This option can be repeated several times. @example -guix environment --pure --inherit=^SLURM --ad-hoc openmpi @dots{} \ +guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \ -- mpirun @dots{} @end example diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 0cf7b3fd5e..63f6129279 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -141,7 +141,7 @@ COMMAND or an interactive shell in that environment.\n")) (display (G_ " --pure unset existing environment variables")) (display (G_ " - --inherit=REGEXP inherit environment variables that match REGEXP")) + -E, --preserve=REGEXP preserve environment variables that match REGEXP")) (display (G_ " --search-paths display needed environment variable definitions")) (display (G_ " @@ -215,11 +215,18 @@ COMMAND or an interactive shell in that environment.\n")) (option '("pure") #f #f (lambda (opt name arg result) (alist-cons 'pure #t result))) - (option '("inherit") #t #f + (option '(#\E "preserve") #t #f (lambda (opt name arg result) (alist-cons 'inherit-regexp (make-regexp* arg) result))) + (option '("inherit") #t #f ;deprecated + (lambda (opt name arg result) + (warning (G_ "'--inherit' is deprecated, \ +use '--preserve' instead~%")) + (alist-cons 'inherit-regexp + (make-regexp* arg) + result))) (option '("search-paths") #f #f (lambda (opt name arg result) (alist-cons 'search-paths #t result))) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index d6df6234f6..7ea9c200de 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -49,13 +49,13 @@ test -x `sed -r 's/^export PATH="(.*)"/\1/' "$tmpdir/a"`/guile cmp "$tmpdir/a" "$tmpdir/b" -# Check '--inherit'. +# Check '--preserve'. GUIX_TEST_ABC=1 GUIX_TEST_DEF=2 GUIX_TEST_XYZ=3 export GUIX_TEST_ABC GUIX_TEST_DEF GUIX_TEST_XYZ guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ - --inherit='^GUIX_TEST_A' --inherit='^GUIX_TEST_D' \ + --preserve='^GUIX_TEST_A' --preserve='^GUIX_TEST_D' \ -- "$SHELL" -c set > "$tmpdir/a" grep '^PATH=' "$tmpdir/a" grep '^GUIX_TEST_ABC=' "$tmpdir/a"