diff options
Diffstat (limited to 'blog')
-rw-r--r-- | blog/Main.hs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/blog/Main.hs b/blog/Main.hs new file mode 100644 index 000000000000..a50ca67ed17d --- /dev/null +++ b/blog/Main.hs @@ -0,0 +1,38 @@ +module Main where + +import Control.Applicative (pure, (<$>), (<*>)) +import Control.Exception (bracket) +import Data.Acid +import Data.Acid.Local (createCheckpointAndClose) +import Options + +import BlogDB (initialBlogState) +import Locales (version) +import Server + +{- Server -} + +data MainOptions = MainOptions { + optState :: String, + optPort :: Int, + optRes :: String +} + +instance Options MainOptions where + defineOptions = pure MainOptions + <*> simpleOption "statedir" "/var/tazblog/" + "Directory in which the BlogState is located." + <*> simpleOption "port" 8000 + "Port to run on. Default is 8000." + <*> simpleOption "res" "/usr/share/tazblog/res" + "Resources folder location." + +main :: IO() +main = do + putStrLn ("TazBlog " ++ version ++ " in Haskell starting") + runCommand $ \opts args -> + bracket (openLocalStateFrom (optState opts ++ "BlogState") initialBlogState) + createCheckpointAndClose + (\acid -> runBlog acid (optPort opts) (optRes opts)) + + |