@@ -48,8 +48,8 @@ hakyllWith conf rules = do
4848 Help _ -> showHelp
4949 Preview _ p -> Commands.preview conf verbosity' rules p
5050 Rebuild _ -> Commands.rebuild conf verbosity' rules >>= exitWith
51− Server _ _ -> Commands.server conf (port args')
52− Watch _ p s -> Commands.watch conf verbosity' p (not s) rules
51+ Server _ _ _ -> Commands.server conf (host args') (port args')
52+ Watch _ _ p s -> Commands.watch conf verbosity' (host args') p (not s) rules
5353
5454
5555--------------------------------------------------------------------------------
@@ -67,8 +67,8 @@ data HakyllArgs
6767 | Help {verbose :: Bool}
6868 | Preview {verbose :: Bool, port :: Int}
6969 | Rebuild {verbose :: Bool}
70− | Server {verbose :: Bool, port :: Int}
71− | Watch {verbose :: Bool, port :: Int, no_server :: Bool }
70+ | Server {verbose :: Bool, host :: String, port :: Int}
71+ | Watch {verbose :: Bool, host :: String, port :: Int, no_server :: Bool }
7272 deriving (Data, Typeable, Show)
7373
7474
@@ -84,13 +84,14 @@ hakyllArgs conf = modes
8484 , (Preview (verboseFlag def) (portFlag defaultPort)) &=
8585 help "[Deprecated] Please use the watch command"
8686 , (Rebuild $ verboseFlag def) &= help "Clean and build again"
87− , (Server (verboseFlag def) (portFlag defaultPort)) &=
87+ , (Server (verboseFlag def) (hostFlag defaultHost) (portFlag defaultPort)) &=
8888 help "Start a preview server"
89− , (Watch (verboseFlag def) (portFlag defaultPort) (noServerFlag False) &=
89+ , (Watch (verboseFlag def) (hostFlag defaultHost) (portFlag defaultPort) (noServerFlag False) &=
9090 help "Autocompile on changes and start a preview server. You can watch and recompile without running a server with --no-server.")
9191 ] &= help "Hakyll static site compiler" &= program progName
92− where defaultPort = Config.previewPort conf
93−
92+ where
93+ defaultHost = Config.previewHost conf
94+ defaultPort = Config.previewPort conf
9495
9596--------------------------------------------------------------------------------
9697verboseFlag :: Data a => a -> a
@@ -103,6 +104,11 @@ noServerFlag :: Data a => a -> a
103104noServerFlag x = x &= help "Disable the built-in web server"
104105{-# INLINE noServerFlag #-}
105106
107+--------------------------------------------------------------------------------
108+hostFlag :: Data a => a -> a
109+hostFlag x = x &= help "Host to bind on"
110+{-# INLINE hostFlag #-}
111+
106112--------------------------------------------------------------------------------
107113portFlag :: Data a => a -> a
108114portFlag x = x &= help "Port to listen on"