module Bunyan where
import qualified Data.Text.IO as T
import qualified System.Process as Sys
import qualified Bunyan.Log as Log
import qualified Bunyan.App as App
import qualified Bunyan.Pretty as Pretty
data Config = Config
{ cfgEditorCommand :: String
, cfgGitRepo :: FilePath
} deriving (Eq, Show)
main :: Config -> IO ()
main cfg = do
let pr = (Sys.proc "git" ["log"]) { Sys.cwd = Just (cfgGitRepo cfg)
, Sys.std_out = Sys.CreatePipe
}
rs <- Sys.withCreateProcess pr $ \ _ (Just stdin) _ _ -> do
T.hGetContents stdin
let entries = Log.parseLogEntry rs
cats <- App.runApp entries
T.putStrLn (Pretty.pretty cats)