From 201855221fa426851556b973e39f21e5ced7dfdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 26 Jul 2016 17:59:25 +0200 Subject: [PATCH] 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. --- doc/guix.texi | 10 +++++++++- guix/scripts/environment.scm | 5 +++-- tests/guix-environment.sh | 4 ++++ 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.