diff options
| author | Joey Hess <id@joeyh.name> | 2014-11-26 10:51:41 -0400 |
|---|---|---|
| committer | Joey Hess <id@joeyh.name> | 2014-11-26 10:51:41 -0400 |
| commit | 3d42f1fa19577a7f9c2b629281fb5675772a0455 (patch) | |
| tree | a5d0cee89993c3616505aedff758b14329b4a4ad /src | |
| parent | 1d8e08f2ac5a1d996e7aab1df0c6c7ff5631210f (diff) | |
| parent | 5a104675e4e18812f8794d9631d54c91b6d9be12 (diff) | |
Merge branch 'joeyconfig'
Diffstat (limited to 'src')
| -rw-r--r-- | src/Propellor/Message.hs | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/Propellor/Message.hs b/src/Propellor/Message.hs index 09a92538..bcd99649 100644 --- a/src/Propellor/Message.hs +++ b/src/Propellor/Message.hs @@ -11,10 +11,14 @@ import System.Log.Handler.Simple import "mtl" Control.Monad.Reader import Data.Maybe import Control.Applicative +import System.Directory +import Control.Monad.IfElse import Propellor.Types import Utility.Monad import Utility.Env +import Utility.Process +import Utility.Exception data MessageHandle = ConsoleMessageHandle @@ -99,17 +103,24 @@ colorLine h intensity color msg = do putStrLn "" hFlush stdout --- | Causes a debug message to be displayed when PROPELLOR_DEBUG=1 debug :: [String] -> IO () debug = debugM "propellor" . unwords checkDebugMode :: IO () checkDebugMode = go =<< getEnv "PROPELLOR_DEBUG" where - go (Just "1") = do - f <- setFormatter - <$> streamHandler stderr DEBUG - <*> pure (simpleLogFormatter "[$time] $msg") - updateGlobalLogger rootLoggerName $ - setLevel DEBUG . setHandlers [f] - go _ = noop + go (Just "1") = enableDebugMode + go (Just _) = noop + go Nothing = whenM (doesDirectoryExist ".git") $ + whenM (any (== "1") . lines <$> getgitconfig) $ + enableDebugMode + getgitconfig = catchDefaultIO "" $ + readProcess "git" ["config", "propellor.debug"] + +enableDebugMode :: IO () +enableDebugMode = do + f <- setFormatter + <$> streamHandler stderr DEBUG + <*> pure (simpleLogFormatter "[$time] $msg") + updateGlobalLogger rootLoggerName $ + setLevel DEBUG . setHandlers [f] |
