~ruther/guix-local

07c86312ca96d095ff5ebeae37940fd7c726c3e5 — Ludovic Courtès 12 years ago 6a446d5
derivations: Add a nicer printer.

* guix/derivations.scm (<derivation>): Add a printer.
1 files changed, 12 insertions(+), 0 deletions(-)

M guix/derivations.scm
M guix/derivations.scm => guix/derivations.scm +12 -0
@@ 19,6 19,7 @@
(define-module (guix derivations)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-9)
  #:use-module (srfi srfi-9 gnu)
  #:use-module (srfi srfi-26)
  #:use-module (rnrs io ports)
  #:use-module (rnrs bytevectors)


@@ 97,6 98,17 @@
  (path            derivation-input-path)             ; store path
  (sub-derivations derivation-input-sub-derivations)) ; list of strings

(set-record-type-printer! <derivation>
                          (lambda (drv port)
                            (format port "#<derivation ~a => ~a ~a>"
                                    (derivation-file-name drv)
                                    (string-join
                                     (map (match-lambda
                                           ((_ . output)
                                            (derivation-output-path output)))
                                          (derivation-outputs drv)))
                                    (number->string (object-address drv) 16))))

(define (fixed-output-derivation? drv)
  "Return #t if DRV is a fixed-output derivation, such as the result of a
download with a fixed hash (aka. `fetchurl')."