module Main where import Arguments (Arguments(..)) import qualified Arguments (get) import qualified Blog (build) import Control.Monad.Reader (runReaderT) import Data.Version (showVersion) import qualified HTML (generate) import qualified JS (generate) import qualified Paths_hablo as Hablo (version) import qualified RSS (generate) import System.Exit (exitSuccess) main :: IO () main = do arguments <- Arguments.get case arguments of Version -> (putStrLn $ showVersion Hablo.version) >> exitSuccess config@(BlogConfig {}) -> Blog.build config >>= runReaderT (do HTML.generate JS.generate RSS.generate )