diff options
Diffstat (limited to 'guix')
| -rw-r--r-- | guix/status.scm | 14 | ||||
| -rw-r--r-- | guix/store.scm | 28 | 
2 files changed, 25 insertions, 17 deletions
| diff --git a/guix/status.scm b/guix/status.scm index 94d4748af5..afa3c656a8 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -24,10 +24,7 @@    #:autoload   (guix build syscalls) (terminal-columns)    #:use-module ((guix build download)                  #:select (nar-uri-abbreviation)) -  #:use-module ((guix store) -                #:select (current-build-output-port -                          current-store-protocol-version -                          log-file)) +  #:use-module (guix store)    #:use-module (guix derivations)    #:use-module (srfi srfi-1)    #:use-module (srfi srfi-9) @@ -334,8 +331,13 @@ addition to build events."      (('build-failed drv . _)       (format port (failure (G_ "build of ~a failed")) drv)       (newline port) -     (format port (info (G_ "View build log at '~a'.~%")) -             (log-file #f drv))) +     (match (derivation-log-file drv) +       (#f +        (format port (failure (G_ "Could not find build log for '~a'.")) +                drv)) +       (log +        (format port (info (G_ "View build log at '~a'.")) log))) +     (newline port))      (('substituter-started item _ ...)       (when (or print-log? (not (extended-build-trace-supported?)))         (format port (info (G_ "substituting ~a...")) item) diff --git a/guix/store.scm b/guix/store.scm index 7785a53aa1..8b35fc8d7a 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -152,6 +152,7 @@              store-path-package-name              store-path-hash-part              direct-store-path +            derivation-log-file              log-file))  (define %protocol-version #x162) @@ -1706,21 +1707,26 @@ syntactically valid store path."                  (and (string-every %nix-base32-charset hash)                       hash)))))) +(define (derivation-log-file drv) +  "Return the build log file for DRV, a derivation file name, or #f if it +could not be found." +  (let* ((base    (basename drv)) +         (log     (string-append (dirname %state-directory) ; XXX +                                 "/log/guix/drvs/" +                                 (string-take base 2) "/" +                                 (string-drop base 2))) +         (log.gz  (string-append log ".gz")) +         (log.bz2 (string-append log ".bz2"))) +    (cond ((file-exists? log.gz) log.gz) +          ((file-exists? log.bz2) log.bz2) +          ((file-exists? log) log) +          (else #f)))) +  (define (log-file store file)    "Return the build log file for FILE, or #f if none could be found.  FILE  must be an absolute store file name, or a derivation file name."    (cond ((derivation-path? file) -         (let* ((base    (basename file)) -                (log     (string-append (dirname %state-directory) ; XXX -                                        "/log/guix/drvs/" -                                        (string-take base 2) "/" -                                        (string-drop base 2))) -                (log.gz  (string-append log ".gz")) -                (log.bz2 (string-append log ".bz2"))) -           (cond ((file-exists? log.gz) log.gz) -                 ((file-exists? log.bz2) log.bz2) -                 ((file-exists? log) log) -                 (else #f)))) +         (derivation-log-file file))          (else           (match (valid-derivers store file)             ((derivers ...) | 
