summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Babenhauserheide <arne_bab@web.de>2024-11-24 00:32:36 +0100
committerLudovic Courtès <ludo@gnu.org>2024-12-02 11:57:13 +0100
commit62f8399e6ac76af85ed72157bea2885d531c06fb (patch)
treeb2a1fc43335eecb80a943190685e9028a47a99a8
parentfb4100293545b30a7eef0b7f3b9bab024d0984a6 (diff)
pack: Add ‘--file=FILE’ with the same meaning as for ‘guix build’.
* guix/scripts/pack.scm (%options): add --file=FILE, but no shorthand (that’s already taken for format). * doc/guix.texi (Invoking guix pack): Document it. Change-Id: I87797fccdf218ead3b7f471a84034e8a8d566245 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--doc/guix.texi8
-rw-r--r--guix/scripts/pack.scm11
2 files changed, 19 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index ba9b75f370..0d461fb96a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7276,6 +7276,14 @@ This has the same purpose as the same-named option in @command{guix
build} (@pxref{Additional Build Options, @option{--expression} in
@command{guix build}}).
+@item --file=@var{file}
+build a pack the code within @var{file} evaluates to.
+
+This has the same purpose as the same-named option in @command{guix
+build} (@pxref{Additional Build Options, @option{--file} in
+@command{guix build}}), but it has no shorthand, because @option{-f}
+already means @option{--format}.
+
@anchor{pack-manifest}
@item --manifest=@var{file}
@itemx -m @var{file}
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 26ba80b80d..58cd55b129 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -30,6 +30,7 @@
(define-module (guix scripts pack)
#:use-module (guix scripts)
+ #:autoload (guix import json) (json->scheme-file)
#:use-module (guix ui)
#:use-module (guix gexp)
#:use-module (guix utils)
@@ -1530,6 +1531,9 @@ libfakechroot.so and related ld.so machinery as a fallback."
(lambda (opt name arg result)
(alist-cons 'derivation-only? #t result)))
+ (option '("file") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'file arg result)))
(option '(#\f "format") #t #f
(lambda (opt name arg result)
(alist-cons 'format (string->symbol arg) result)))
@@ -1621,6 +1625,8 @@ Create a bundle of PACKAGE.\n"))
(show-rpm-format-options)
(newline)
(display (G_ "
+ --file=FORMAT build a pack the code within FILE evaluates to"))
+ (display (G_ "
-f, --format=FORMAT build a pack in the given FORMAT"))
(display (G_ "
--list-formats list the formats available"))
@@ -1684,6 +1690,11 @@ Create a bundle of PACKAGE.\n"))
list))
(('expression . exp)
(read/eval-package-expression exp))
+ (('file . file)
+ (let ((file (or (and (string-suffix? ".json" file)
+ (json->scheme-file file))
+ file)))
+ (load* file (make-user-module '()))))
(x #f)))
(define (manifest-from-args store opts)