githud-3.2.0: src/GitHUD/Debug.hs
module GitHUD.Debug (
debug,
debugOnStderr
) where
import Control.Monad (when)
import Data.Maybe (fromMaybe)
import System.Environment (lookupEnv)
import System.IO (stdout, stderr, hFlush, hPutStrLn)
debugEnvVar :: String
debugEnvVar = "GITHUD_DEBUG"
debugEnvVarValue :: String
debugEnvVarValue = "TRUE"
isDebugActive :: IO Bool
isDebugActive = do
env <- lookupEnv debugEnvVar
let debug = fromMaybe "FALSE" env
return $ debug == debugEnvVarValue
whenDebugActive :: IO () -> IO ()
whenDebugActive effect = do
debugActive <- isDebugActive
if debugActive then effect else return ()
debug :: String
-> IO ()
debug msg = whenDebugActive $ do
putStrLn msg
hFlush stdout
debugOnStderr :: String
-> IO ()
debugOnStderr msg = whenDebugActive $ do
hPutStrLn stderr msg
hFlush stderr