diff options
| author | Joey Hess <joey@kitenet.net> | 2014-11-18 17:53:42 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-11-18 17:53:42 -0400 |
| commit | 4a0cac113cf999a58a60f7db7a11d5b0ad623699 (patch) | |
| tree | b4ec503709eb3aa89321b37a18c84f6e8c92ebb7 /src/Propellor/Message.hs | |
| parent | 39b9a61591bf28b1c9c5dc18a6f668c8becb9f6e (diff) | |
fix color display when running propellor inside docker
Diffstat (limited to 'src/Propellor/Message.hs')
| -rw-r--r-- | src/Propellor/Message.hs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Propellor/Message.hs b/src/Propellor/Message.hs index e184a59e..639171c5 100644 --- a/src/Propellor/Message.hs +++ b/src/Propellor/Message.hs @@ -6,20 +6,30 @@ import System.Console.ANSI import System.IO import System.Log.Logger import "mtl" Control.Monad.Reader +import Data.Maybe +import Control.Applicative import Propellor.Types import Utility.Monad +import Utility.Env data MessageHandle = ConsoleMessageHandle | TextMessageHandle mkMessageHandle :: IO MessageHandle -mkMessageHandle = ifM (hIsTerminalDevice stdout) +mkMessageHandle = ifM (hIsTerminalDevice stdout <||> (isJust <$> getEnv "PROPELLOR_CONSOLE")) ( return ConsoleMessageHandle , return TextMessageHandle ) +forceConsole :: IO () +forceConsole = void $ setEnv "PROPELLOR_CONSOLE" "1" True + +isConsole :: MessageHandle -> Bool +isConsole ConsoleMessageHandle = True +isConsole _ = False + whenConsole :: MessageHandle -> IO () -> IO () whenConsole ConsoleMessageHandle a = a whenConsole _ _ = return () |
