module Rob.Logger where
import System.Console.ANSI
import Data.Time.Clock (getCurrentTime, UTCTime)
import Data.Time.Format (formatTime, defaultTimeLocale)
log' :: Color -> ColorIntensity -> String -> IO()
log' color intensity message = do
setSGR [SetColor Foreground Dull White]
time <- getCurrentTime
print' $ formatTime' time
setSGR [Reset]
setSGR [SetColor Foreground intensity color]
print' $ message ++ "\n"
setSGR [Reset]
formatTime' :: UTCTime -> String
formatTime' = formatTime defaultTimeLocale "[%T] "
print' :: String -> IO()
print' = putStr
success :: String -> IO()
success = log' Green Dull
err :: String -> IO()
err = log' Red Vivid
info :: String -> IO()
info = log' Cyan Dull
warning :: String -> IO()
warning = log' Yellow Dull
raw :: String -> IO()
raw = print'
flatten :: Monad m => (a -> m b) -> [a] -> m ()
flatten = mapM_