guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: grafts: Add record type printer.


From: Ludovic Courtès
Subject: 02/03: grafts: Add record type printer.
Date: Fri, 26 Feb 2016 22:38:12 +0000

civodul pushed a commit to branch master
in repository guix.

commit acb01e37466a1d3fff81f10e00fe15a4ef20e2db
Author: Ludovic Courtès <address@hidden>
Date:   Fri Feb 26 12:42:15 2016 +0100

    grafts: Add record type printer.
    
    * guix/grafts.scm (write-graft): New procedure.  Register it as a
    printer for <graft>.
---
 guix/grafts.scm |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/guix/grafts.scm b/guix/grafts.scm
index 5074809..a1f7d88 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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]