summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-11-20 10:02:01 +0100
committerLudovic Courtès <ludo@gnu.org>2019-11-22 15:07:58 +0100
commitd76df98fa59166c0c9f71ca41d664857d93e136d (patch)
treef597a66a066b89d1fc0d1345e8c05ba79224bc14
parentc0e9d470e1eb3eba0d2c2da3c6ffdd5665c4638b (diff)
downloadpatches-d76df98fa59166c0c9f71ca41d664857d93e136d.tar
patches-d76df98fa59166c0c9f71ca41d664857d93e136d.tar.gz
environment: Document that '--manifest' can be repeated.
* tests/guix-environment.sh: Test 'guix environment' with two '-m' options. * doc/guix.texi (Invoking guix environment): Explain that '-m' can be passed multiple times.
-rw-r--r--doc/guix.texi3
-rw-r--r--tests/guix-environment.sh23
2 files changed, 25 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 1fec43a228..0dc49c3cda 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4802,7 +4802,8 @@ As an example, @var{file} might contain a definition like this
@item --manifest=@var{file}
@itemx -m @var{file}
Create an environment for the packages contained in the manifest object
-returned by the Scheme code in @var{file}.
+returned by the Scheme code in @var{file}. This option can be repeated
+several times, in which case the manifests are concatenated.
This is similar to the same-named option in @command{guix package}
(@pxref{profile-manifest, @option{--manifest}}) and uses the same
diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh
index fb1c1a022d..2faf38df06 100644
--- a/tests/guix-environment.sh
+++ b/tests/guix-environment.sh
@@ -84,6 +84,29 @@ echo "(use-modules (guix profiles) (gnu packages bootstrap))
guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \
-- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'
+# Make sure '--manifest' can be specified multiple times.
+cat > "$tmpdir/manifest2.scm" <<EOF
+(use-modules (guix) (guix profiles)
+ (guix build-system trivial)
+ (gnu packages bootstrap))
+
+(packages->manifest
+ (list (package
+ (inherit %bootstrap-guile)
+ (name "eliug")
+ (build-system trivial-build-system)
+ (arguments
+ (quasiquote
+ (#:guile ,%bootstrap-guile
+ #:builder
+ (begin
+ (mkdir %output)
+ (mkdir (string-append %output "/eliug")))))))))
+EOF
+guix environment --bootstrap -m "$tmpdir/manifest.scm" \
+ -m "$tmpdir/manifest2.scm" --pure \
+ -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile" && test -d "$GUIX_ENVIRONMENT/eliug"'
+
# Make sure '-r' works as expected.
rm -f "$gcroot"
expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \