summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-07-26 17:59:25 +0200
committerLudovic Courtès <ludo@gnu.org>2016-07-26 17:59:25 +0200
commit201855221fa426851556b973e39f21e5ced7dfdf (patch)
tree3d64746996442dba5ac31112c5d34ce841d28eaf
parent8173ceee1f31ab562118ff5171254a4b73b71400 (diff)
downloadgnu-guix-201855221fa426851556b973e39f21e5ced7dfdf.tar
gnu-guix-201855221fa426851556b973e39f21e5ced7dfdf.tar.gz
environment: Set 'GUIX_ENVIRONMENT' to the profile.
* guix/scripts/environment.scm (create-environment): Set 'GUIX_ENVIRONMENT' to PROFILE. * tests/guix-environment.sh: Test it. * doc/guix.texi (Invoking guix environment): Document it.
-rw-r--r--doc/guix.texi10
-rw-r--r--guix/scripts/environment.scm5
-rw-r--r--tests/guix-environment.sh4
3 files changed, 16 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 8ab4522140..786fe551ba 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5456,7 +5456,8 @@ details on Bash start-up files.}.
@vindex GUIX_ENVIRONMENT
@command{guix environment} defines the @code{GUIX_ENVIRONMENT}
-variable in the shell it spawns. This allows users to, say, define a
+variable in the shell it spawns; its value is the file name of the
+profile of this environment. This allows users to, say, define a
specific prompt for development environments in their @file{.bashrc}
(@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):
@@ -5467,6 +5468,13 @@ then
fi
@end example
+@noindent
+... or to browse the profile:
+
+@example
+$ ls "$GUIX_ENVIRONMENT/bin"
+@end example
+
Additionally, more than one package may be specified, in which case the
union of the inputs for the given packages are used. For example, the
command below spawns a shell where all of the dependencies of both Guile
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index ebe966f9cf..9f72b7bf24 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -90,8 +90,9 @@ existing enviroment variables with additional search paths."
(evaluate-profile-search-paths profile paths))
;; Give users a way to know that they're in 'guix environment', so they can
- ;; adjust 'PS1' accordingly, for instance.
- (setenv "GUIX_ENVIRONMENT" "t"))
+ ;; adjust 'PS1' accordingly, for instance. Set it to PROFILE so users can
+ ;; conveniently access its contents.
+ (setenv "GUIX_ENVIRONMENT" profile))
(define (show-search-paths profile search-paths pure?)
"Display SEARCH-PATHS applied to PROFILE. When PURE? is #t, do not augment
diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh
index 0b5123ab45..68343520b0 100644
--- a/tests/guix-environment.sh
+++ b/tests/guix-environment.sh
@@ -57,6 +57,10 @@ else
test $? = 42
fi
+# Make sure 'GUIX_ENVIRONMENT' points to the profile.
+guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
+ -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'
+
case "`uname -m`" in
x86_64)
# On x86_64, we should be able to create a 32-bit environment.