diff options
author | Arne Babenhauserheide <arne_bab@web.de> | 2024-11-24 00:32:36 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-12-02 11:57:13 +0100 |
commit | 62f8399e6ac76af85ed72157bea2885d531c06fb (patch) | |
tree | b2a1fc43335eecb80a943190685e9028a47a99a8 | |
parent | fb4100293545b30a7eef0b7f3b9bab024d0984a6 (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.texi | 8 | ||||
-rw-r--r-- | guix/scripts/pack.scm | 11 |
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) |