guix-commits
[Top][All Lists]
Advanced

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

03/03: status: Spin only on TTYs.


From: guix-commits
Subject: 03/03: status: Spin only on TTYs.
Date: Tue, 15 Jan 2019 06:06:25 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit 0c1bc5ecbe72e06bfa0eefc75848d75a1fed2d77
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jan 15 11:47:25 2019 +0100

    status: Spin only on TTYs.
    
    * guix/status.scm (isatty?*): New procedure.
    (spin!): Do nothing when port matches ISATTY?*.
    (color-output?): Use ISATTY?*.
---
 guix/status.scm | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/guix/status.scm b/guix/status.scm
index 2928733..478c475 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -27,6 +27,7 @@
                 #:select (nar-uri-abbreviation))
   #:use-module (guix store)
   #:use-module (guix derivations)
+  #:use-module (guix memoization)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-19)
@@ -229,22 +230,27 @@ build-log\" traces."
   (and (current-store-protocol-version)
        (>= (current-store-protocol-version) #x163)))
 
+(define isatty?*
+  (mlambdaq (port)
+    (isatty? port)))
+
 (define spin!
   (let ((steps (circular-list "\\" "|" "/" "-")))
     (lambda (port)
       "Display a spinner on PORT."
-      (match steps
-        ((first . rest)
-         (set! steps rest)
-         (display "\r\x1b[K" port)
-         (display first port)
-         (force-output port))))))
+      (when (isatty?* port)
+        (match steps
+          ((first . rest)
+           (set! steps rest)
+           (display "\r\x1b[K" port)
+           (display first port)
+           (force-output port)))))))
 
 (define (color-output? port)
   "Return true if we should write colored output to PORT."
   (and (not (getenv "INSIDE_EMACS"))
        (not (getenv "NO_COLOR"))
-       (isatty? port)))
+       (isatty?* port)))
 
 (define-syntax color-rules
   (syntax-rules ()



reply via email to

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