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" <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 \