Skip to content

Commit 1592615

Browse files
committed
ENH No colour output when NO_COLOR is defined
https://no-color.org/ closes #83
1 parent 92a7841 commit 1592615

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

ChangeLog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Version 0.9.1+
1111
* Add __extra_megahit_args to assemble() (issue #86)
1212
* Better error message when user mis-specifies the ngless version string
1313
(issue #84)
14+
* Support NO_COLOR environment variable (issue #83)
1415

1516
Version 0.9.1 2018-07-17 by luispedro
1617
* Add biorxiv citation

NGLess/Output.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import Text.Printf (printf)
2222
import System.IO (hIsTerminalDevice, stdout)
2323
import System.IO.Unsafe (unsafePerformIO)
2424
import System.IO.SafeWrite (withOutputFile)
25-
import Data.Maybe (maybeToList, fromMaybe)
25+
import Data.Maybe (maybeToList, fromMaybe, isJust)
2626
import Data.IORef (IORef, newIORef, modifyIORef, readIORef)
2727
import Data.List (sort)
2828
import Data.Aeson ((.=))
@@ -45,6 +45,7 @@ import qualified Data.ByteString.Lazy.Char8 as BL8
4545
import qualified Data.ByteString.Lazy as BL
4646
import qualified Graphics.Rendering.Chart.Easy as G
4747
import qualified Graphics.Rendering.Chart.Backend.Cairo as G
48+
import System.Environment (lookupEnv)
4849

4950

5051
import Data.FastQ (FastQEncoding(..), encodingName)
@@ -175,14 +176,15 @@ shouldPrint True ot Normal = ot >= InfoOutput
175176
output :: OutputType -> Int -> String -> NGLessIO ()
176177
output !ot !lno !msg = do
177178
isTerm <- liftIO $ hIsTerminalDevice stdout
179+
hasNOCOLOR <- isJust <$> liftIO (lookupEnv "NO_COLOR")
178180
verb <- nConfVerbosity <$> nglConfiguration
179181
traceSet <- nConfTrace <$> nglConfiguration
180182
colorOpt <- nConfColor <$> nglConfiguration
181183
let sp = traceSet || shouldPrint isTerm ot verb
182184
doColor = case colorOpt of
183185
ForceColor -> True
184186
NoColor -> False
185-
AutoColor -> isTerm
187+
AutoColor -> isTerm && not hasNOCOLOR
186188
c <- colorFor ot
187189
liftIO $ do
188190
t <- getZonedTime

0 commit comments

Comments
 (0)