~ruther/guix-local

609354bf0a361cb9217a3b43f270c7a986b54f63 — Ludovic Courtès 13 years ago 5dba314
guix-build: Add `--derivations'.

* guix-build.in (show-help): Add `--derivations'.
  (%options): Likewise.
  (guix-build): Handle it.
1 files changed, 19 insertions(+), 12 deletions(-)

M guix-build.in
M guix-build.in => guix-build.in +19 -12
@@ 84,6 84,8 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))
  (display (_ "
  -S, --source           build the packages' source derivations"))
  (display (_ "
  -d, --derivations      return the derivation paths of the given packages"))
  (display (_ "
  -K, --keep-failed      keep build tree of failed builds"))
  (display (_ "
  -n, --dry-run          do not build the derivations"))


@@ 112,6 114,9 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
        (option '(#\S "source") #f #f
                (lambda (opt name arg 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
                (lambda (opt name arg result)
                  (alist-cons 'expression


@@ 196,15 201,17 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
                       #:build-cores (or (assoc-ref opts 'cores)
                                         (current-processor-count)))

    (or (assoc-ref opts 'dry-run?)
        (and (build-derivations %store drv)
             (for-each (lambda (d)
                         (let ((drv (call-with-input-file d
                                      read-derivation)))
                           (format #t "~{~a~%~}"
                                   (map (match-lambda
                                         ((out-name . out)
                                          (derivation-path->output-path
                                           d out-name)))
                                        (derivation-outputs drv)))))
                       drv)))))
    (if (assoc-ref opts 'derivations-only?)
        (format #t "~{~a~%~}" drv)
        (or (assoc-ref opts 'dry-run?)
            (and (build-derivations %store drv)
                 (for-each (lambda (d)
                             (let ((drv (call-with-input-file d
                                          read-derivation)))
                               (format #t "~{~a~%~}"
                                       (map (match-lambda
                                             ((out-name . out)
                                              (derivation-path->output-path
                                               d out-name)))
                                            (derivation-outputs drv)))))
                           drv))))))