[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#38301] [PATCH 1/4] environment: Document that '--manifest' can be r
From: |
Ludovic Courtès |
Subject: |
[bug#38301] [PATCH 1/4] environment: Document that '--manifest' can be repeated. |
Date: |
Wed, 20 Nov 2019 14:44:34 +0100 |
* 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.
---
doc/guix.texi | 3 ++-
tests/guix-environment.sh | 23 +++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index a7ac6ff464..443d5bd71f 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 \
--
2.24.0