guix-build: Add `--derivations'.

* guix-build.in (show-help): Add `--derivations'.
  (%options): Likewise.
  (guix-build): Handle it.
This commit is contained in:
Ludovic Courtès 2012-09-04 23:43:24 +02:00
parent 5dba31494e
commit 609354bf0a

View File

@ -84,6 +84,8 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))
(display (_ " (display (_ "
-S, --source build the packages' source derivations")) -S, --source build the packages' source derivations"))
(display (_ " (display (_ "
-d, --derivations return the derivation paths of the given packages"))
(display (_ "
-K, --keep-failed keep build tree of failed builds")) -K, --keep-failed keep build tree of failed builds"))
(display (_ " (display (_ "
-n, --dry-run do not build the derivations")) -n, --dry-run do not build the derivations"))
@ -112,6 +114,9 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
(option '(#\S "source") #f #f (option '(#\S "source") #f #f
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'source? #t result))) (alist-cons 'source? #t result)))
(option '(#\d "derivations") #f #f
(lambda (opt name arg result)
(alist-cons 'derivations-only? #t result)))
(option '(#\e "expression") #t #f (option '(#\e "expression") #t #f
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'expression (alist-cons 'expression
@ -196,15 +201,17 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
#:build-cores (or (assoc-ref opts 'cores) #:build-cores (or (assoc-ref opts 'cores)
(current-processor-count))) (current-processor-count)))
(or (assoc-ref opts 'dry-run?) (if (assoc-ref opts 'derivations-only?)
(and (build-derivations %store drv) (format #t "~{~a~%~}" drv)
(for-each (lambda (d) (or (assoc-ref opts 'dry-run?)
(let ((drv (call-with-input-file d (and (build-derivations %store drv)
read-derivation))) (for-each (lambda (d)
(format #t "~{~a~%~}" (let ((drv (call-with-input-file d
(map (match-lambda read-derivation)))
((out-name . out) (format #t "~{~a~%~}"
(derivation-path->output-path (map (match-lambda
d out-name))) ((out-name . out)
(derivation-outputs drv))))) (derivation-path->output-path
drv))))) d out-name)))
(derivation-outputs drv)))))
drv))))))