diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-02-26 12:42:15 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-02-26 23:35:29 +0100 |
commit | acb01e37466a1d3fff81f10e00fe15a4ef20e2db (patch) | |
tree | d31307f0a23a1b1304a8fcbf860d1569dd141613 /guix/grafts.scm | |
parent | 70ac09a552ad3a402bfa3848e9b2c5ef92610673 (diff) | |
download | gnu-guix-acb01e37466a1d3fff81f10e00fe15a4ef20e2db.tar gnu-guix-acb01e37466a1d3fff81f10e00fe15a4ef20e2db.tar.gz |
grafts: Add record type printer.
* guix/grafts.scm (write-graft): New procedure. Register it as a
printer for <graft>.
Diffstat (limited to 'guix/grafts.scm')
-rw-r--r-- | guix/grafts.scm | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/guix/grafts.scm b/guix/grafts.scm index 5074809c43..a1f7d8801a 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -21,6 +21,7 @@ #:use-module (guix derivations) #:use-module ((guix utils) #:select (%current-system)) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (graft? @@ -44,6 +45,22 @@ (replacement-output graft-replacement-output ;string | #f (default "out"))) +(define (write-graft graft port) + "Write a concise representation of GRAFT to PORT." + (define (->string thing output) + (if (derivation? thing) + (derivation->output-path thing output) + thing)) + + (match graft + (($ <graft> origin origin-output replacement replacement-output) + (format port "#<graft ~a ==> ~a ~a>" + (->string origin origin-output) + (->string replacement replacement-output) + (number->string (object-address graft) 16))))) + +(set-record-type-printer! <graft> write-graft) + (define* (graft-derivation store drv grafts #:key (name (derivation-name drv)) |