pack: Add '--expression'.
* guix/scripts/pack.scm (%options, show-help): Add '--expression'. (guix-pack)[maybe-package-argument]: New procedure. Use it, and remove variable 'specs'. * doc/guix.texi (Invoking guix pack): Document '--expression'.
This commit is contained in:
parent
d10fa5c7ff
commit
83cfa0247b
|
@ -2476,6 +2476,14 @@ This produces a tarball that follows the
|
||||||
Docker Image Specification}.
|
Docker Image Specification}.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@item --expression=@var{expr}
|
||||||
|
@itemx -e @var{expr}
|
||||||
|
Consider the package @var{expr} evaluates to.
|
||||||
|
|
||||||
|
This has the same purpose as the same-named option in @command{guix
|
||||||
|
build} (@pxref{Additional Build Options, @code{--expression} in
|
||||||
|
@command{guix build}}).
|
||||||
|
|
||||||
@item --system=@var{system}
|
@item --system=@var{system}
|
||||||
@itemx -s @var{system}
|
@itemx -s @var{system}
|
||||||
Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of
|
Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of
|
||||||
|
|
|
@ -280,6 +280,9 @@ the image."
|
||||||
(option '(#\f "format") #t #f
|
(option '(#\f "format") #t #f
|
||||||
(lambda (opt name arg result)
|
(lambda (opt name arg result)
|
||||||
(alist-cons 'format (string->symbol arg) result)))
|
(alist-cons 'format (string->symbol arg) result)))
|
||||||
|
(option '(#\e "expression") #t #f
|
||||||
|
(lambda (opt name arg result)
|
||||||
|
(alist-cons 'expression arg result)))
|
||||||
(option '(#\s "system") #t #f
|
(option '(#\s "system") #t #f
|
||||||
(lambda (opt name arg result)
|
(lambda (opt name arg result)
|
||||||
(alist-cons 'system arg
|
(alist-cons 'system arg
|
||||||
|
@ -323,6 +326,8 @@ Create a bundle of PACKAGE.\n"))
|
||||||
(display (_ "
|
(display (_ "
|
||||||
-f, --format=FORMAT build a pack in the given FORMAT"))
|
-f, --format=FORMAT build a pack in the given FORMAT"))
|
||||||
(display (_ "
|
(display (_ "
|
||||||
|
-e, --expression=EXPR consider the package EXPR evaluates to"))
|
||||||
|
(display (_ "
|
||||||
-s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""))
|
-s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""))
|
||||||
(display (_ "
|
(display (_ "
|
||||||
--target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\""))
|
--target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\""))
|
||||||
|
@ -349,20 +354,22 @@ Create a bundle of PACKAGE.\n"))
|
||||||
(define opts
|
(define opts
|
||||||
(parse-command-line args %options (list %default-options)))
|
(parse-command-line args %options (list %default-options)))
|
||||||
|
|
||||||
|
(define maybe-package-argument
|
||||||
|
;; Given an option pair, return a package, a package/output tuple, or #f.
|
||||||
|
(match-lambda
|
||||||
|
(('argument . spec)
|
||||||
|
(call-with-values
|
||||||
|
(lambda ()
|
||||||
|
(specification->package+output spec))
|
||||||
|
list))
|
||||||
|
(('expression . exp)
|
||||||
|
(read/eval-package-expression exp))
|
||||||
|
(x #f)))
|
||||||
|
|
||||||
(with-error-handling
|
(with-error-handling
|
||||||
(parameterize ((%graft? (assoc-ref opts 'graft?)))
|
(parameterize ((%graft? (assoc-ref opts 'graft?)))
|
||||||
(let* ((dry-run? (assoc-ref opts 'dry-run?))
|
(let* ((dry-run? (assoc-ref opts 'dry-run?))
|
||||||
(specs (filter-map (match-lambda
|
(packages (filter-map maybe-package-argument opts))
|
||||||
(('argument . name)
|
|
||||||
name)
|
|
||||||
(x #f))
|
|
||||||
opts))
|
|
||||||
(packages (map (lambda (spec)
|
|
||||||
(call-with-values
|
|
||||||
(lambda ()
|
|
||||||
(specification->package+output spec))
|
|
||||||
list))
|
|
||||||
specs))
|
|
||||||
(pack-format (assoc-ref opts 'format))
|
(pack-format (assoc-ref opts 'format))
|
||||||
(name (string-append (symbol->string pack-format)
|
(name (string-append (symbol->string pack-format)
|
||||||
"-pack"))
|
"-pack"))
|
||||||
|
|
Loading…
Reference in New Issue