2015-11-19 19:28:36 +01:00
|
|
|
-- | Main module for the blog's web server
|
2012-02-22 22:03:31 +01:00
|
|
|
module Main where
|
|
|
|
|
2019-08-20 01:17:23 +02:00
|
|
|
import Control.Applicative (pure, (<*>))
|
2015-11-19 19:28:36 +01:00
|
|
|
import Control.Exception (bracket)
|
|
|
|
import Data.Word (Word16)
|
|
|
|
import Locales (version)
|
|
|
|
import Network (HostName, PortID (..))
|
2012-03-25 19:29:38 +02:00
|
|
|
import Options
|
2014-05-18 22:39:38 +02:00
|
|
|
import Server
|
2012-02-22 22:03:31 +01:00
|
|
|
|
2014-03-11 18:12:51 +01:00
|
|
|
data MainOptions = MainOptions {
|
2015-11-19 19:28:36 +01:00
|
|
|
blogPort :: Int,
|
|
|
|
resourceDir :: String
|
2014-03-11 18:12:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
instance Options MainOptions where
|
|
|
|
defineOptions = pure MainOptions
|
2015-11-19 19:28:36 +01:00
|
|
|
<*> simpleOption "blogPort" 8000
|
|
|
|
"Port to serve the blog on. Default is 8000."
|
2015-11-21 18:55:21 +01:00
|
|
|
<*> simpleOption "resourceDir" "/opt/tazblog/static"
|
2014-03-11 18:22:59 +01:00
|
|
|
"Resources folder location."
|
2015-11-19 19:28:36 +01:00
|
|
|
|
2012-03-09 17:57:53 +01:00
|
|
|
main :: IO()
|
|
|
|
main = do
|
|
|
|
putStrLn ("TazBlog " ++ version ++ " in Haskell starting")
|
2015-11-19 19:28:36 +01:00
|
|
|
runCommand $ \opts _ ->
|
2019-08-20 01:17:23 +02:00
|
|
|
runBlog (blogPort opts) (resourceDir opts)
|