[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 ()