diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-11-29 17:42:01 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-11-29 17:42:01 +0100 |
commit | 841cb43c6b4b7cb6ce328962368c583bc5fdc114 (patch) | |
tree | 5daaa07ddd6a2b5d66c55a207a1bf9b09161e046 | |
parent | 4eae7980753649fd8b3cfdb92f755acf0a2108e8 (diff) | |
download | guix-841cb43c6b4b7cb6ce328962368c583bc5fdc114.tar guix-841cb43c6b4b7cb6ce328962368c583bc5fdc114.tar.gz |
guix build: Factorize build log query.
* guix/scripts/build.scm (show-build-log): New procedure.
(guix-build): New variable 'items'. Use it and 'show-build-log'.
-rw-r--r-- | guix/scripts/build.scm | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 644ffe8d6e..b415403473 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -494,6 +494,15 @@ arguments with packages that use the specified source." ((head tail ...) (loop tail sources (cons head result)))))) +(define (show-build-log store file urls) + "Show the build log for FILE, falling back to remote logs from URLS if +needed." + (let ((log (or (log-file store file) + (log-url store file #:base-urls urls)))) + (if log + (format #t "~a~%" log) + (leave (_ "no build log for '~a'~%") file)))) + ;;; ;;; Entry point. @@ -515,9 +524,14 @@ arguments with packages that use the specified source." ;; daemon's substitute URLs. %default-substitute-urls) '()))) + (items (filter-map (match-lambda + (('argument . (? store-path? file)) + file) + (_ #f)) + opts)) (roots (filter-map (match-lambda - (('gc-root . root) root) - (_ #f)) + (('gc-root . root) root) + (_ #f)) opts))) (set-build-options-from-command-line store opts) @@ -527,22 +541,10 @@ arguments with packages that use the specified source." #:dry-run? (assoc-ref opts 'dry-run?))) (cond ((assoc-ref opts 'log-file?) - (for-each (lambda (file) - (let ((log (or (log-file store file) - (log-url store file - #:base-urls urls)))) - (if log - (format #t "~a~%" log) - (leave (_ "no build log for '~a'~%") - file)))) + (for-each (cut show-build-log store <> urls) (delete-duplicates (append (map derivation-file-name drv) - (filter-map (match-lambda - (('argument - . (? store-path? file)) - file) - (_ #f)) - opts))))) + items)))) ((assoc-ref opts 'derivations-only?) (format #t "~{~a~%~}" (map derivation-file-name drv)) (for-each (cut register-root store <> <>) |