Bunyan.hs 719 B

12345678910111213141516171819202122232425
  1. module Bunyan where
  2. import qualified Data.Text.IO as T
  3. import qualified System.Process as Sys
  4. import qualified Bunyan.Log as Log
  5. import qualified Bunyan.App as App
  6. import qualified Bunyan.Pretty as Pretty
  7. data Config = Config
  8. { cfgEditorCommand :: String
  9. , cfgGitRepo :: FilePath
  10. } deriving (Eq, Show)
  11. main :: Config -> IO ()
  12. main cfg = do
  13. let pr = (Sys.proc "git" ["log"]) { Sys.cwd = Just (cfgGitRepo cfg)
  14. , Sys.std_out = Sys.CreatePipe
  15. }
  16. rs <- Sys.withCreateProcess pr $ \ _ (Just stdin) _ _ -> do
  17. T.hGetContents stdin
  18. let entries = Log.parseLogEntry rs
  19. cats <- App.runApp entries
  20. T.putStrLn (Pretty.pretty cats)