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.
This commit is contained in:
Ludovic Courtès 2016-07-26 17:59:25 +02:00
parent 8173ceee1f
commit 201855221f
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 16 additions and 3 deletions

View File

@ -5456,7 +5456,8 @@ details on Bash start-up files.}.
@vindex GUIX_ENVIRONMENT @vindex GUIX_ENVIRONMENT
@command{guix environment} defines the @code{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} specific prompt for development environments in their @file{.bashrc}
(@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}): (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):
@ -5467,6 +5468,13 @@ then
fi fi
@end example @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 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 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 command below spawns a shell where all of the dependencies of both Guile

View File

@ -90,8 +90,9 @@ existing enviroment variables with additional search paths."
(evaluate-profile-search-paths profile paths)) (evaluate-profile-search-paths profile paths))
;; Give users a way to know that they're in 'guix environment', so they can ;; Give users a way to know that they're in 'guix environment', so they can
;; adjust 'PS1' accordingly, for instance. ;; adjust 'PS1' accordingly, for instance. Set it to PROFILE so users can
(setenv "GUIX_ENVIRONMENT" "t")) ;; conveniently access its contents.
(setenv "GUIX_ENVIRONMENT" profile))
(define (show-search-paths profile search-paths pure?) (define (show-search-paths profile search-paths pure?)
"Display SEARCH-PATHS applied to PROFILE. When PURE? is #t, do not augment "Display SEARCH-PATHS applied to PROFILE. When PURE? is #t, do not augment

View File

@ -57,6 +57,10 @@ else
test $? = 42 test $? = 42
fi 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 case "`uname -m`" in
x86_64) x86_64)
# On x86_64, we should be able to create a 32-bit environment. # On x86_64, we should be able to create a 32-bit environment.