aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-03-04 14:19:55 +0100
committerLudovic Courtès <ludo@gnu.org>2019-03-04 15:22:59 +0100
commitdca58219584c1163a9fbf88fccea885eb53bf2af (patch)
treeba2d2992b2e638a8fb07c600c8a401a71ced001d
parentbab9cc4aff09a14fdd4178c479becf932992b5b5 (diff)
downloadguix-dca58219584c1163a9fbf88fccea885eb53bf2af.tar
guix-dca58219584c1163a9fbf88fccea885eb53bf2af.tar.gz
environment: Rename '--inherit' to '--preserve'.
Suggested by Eric Bavier and Ricardo Wurmus. * guix/scripts/environment.scm (show-help, %options): Emit a deprecation warning for "--inherit" and add -E/--preserve. * tests/guix-environment.sh: Adjust accordingly. * doc/guix.texi (Invoking guix environment): Update accordingly.
-rw-r--r--doc/guix.texi9
-rw-r--r--guix/scripts/environment.scm11
-rw-r--r--tests/guix-environment.sh4
3 files changed, 16 insertions, 8 deletions
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"