diff options
author | Jorge Israel Peña <jorgepblank@gmail.com> | 2013-08-29 22:43:57 -0700 |
---|---|---|
committer | Jorge Israel Peña <jorgepblank@gmail.com> | 2013-08-29 22:43:57 -0700 |
commit | 999252ece13cd695d65fed9cd01960f5ef3c60ff (patch) | |
tree | c2e15b4493daeb808742da6ce19319f1383ede47 | |
parent | 94d7281a2c4f21e67e2da09c6029cf60583c37e7 (diff) | |
download | hakyll-999252ece13cd695d65fed9cd01960f5ef3c60ff.tar.gz |
add preview port Configuration field
Make it possible to specify the default port to listen on when the
preview server is run. This is useful if another service on the system
already runs on port 8000 (the default), since it's a hassle to keep
providing the port overriding option. For example: ./site preview vs.
./site preview -p 4000
-rw-r--r-- | src/Hakyll/Core/Configuration.hs | 5 | ||||
-rw-r--r-- | src/Hakyll/Main.hs | 15 |
2 files changed, 13 insertions, 7 deletions
diff --git a/src/Hakyll/Core/Configuration.hs b/src/Hakyll/Core/Configuration.hs index a4bc90b..f9927de 100644 --- a/src/Hakyll/Core/Configuration.hs +++ b/src/Hakyll/Core/Configuration.hs @@ -69,6 +69,10 @@ data Configuration = Configuration , -- | Use an in-memory cache for items. This is faster but uses more -- memory. inMemoryCache :: Bool + , -- | Override default port for preview server. Default is 8000. + -- One can also override the port as a command line argument: + -- ./site preview -p 1234 + previewPort :: Int } -------------------------------------------------------------------------------- @@ -87,6 +91,7 @@ defaultConfiguration = Configuration , deployCommand = "echo 'No deploy command specified' && exit 1" , deploySite = system . deployCommand , inMemoryCache = True + , previewPort = 8000 } where ignoreFile' path diff --git a/src/Hakyll/Main.hs b/src/Hakyll/Main.hs index 4b30939..86516cb 100644 --- a/src/Hakyll/Main.hs +++ b/src/Hakyll/Main.hs @@ -34,7 +34,7 @@ hakyll = hakyllWith Config.defaultConfiguration -- configuration hakyllWith :: Config.Configuration -> Rules a -> IO () hakyllWith conf rules = do - args' <- cmdArgs hakyllArgs + args' <- cmdArgs (hakyllArgs conf) let verbosity' = if verbose args' then Logger.Debug else Logger.Message check' = @@ -55,7 +55,7 @@ hakyllWith conf rules = do -------------------------------------------------------------------------------- -- | Show usage information. showHelp :: IO () -showHelp = print $ CA.helpText [] CA.HelpFormatOne $ cmdArgsMode hakyllArgs +showHelp = print $ CA.helpText [] CA.HelpFormatOne $ cmdArgsMode (hakyllArgs Config.defaultConfiguration) -------------------------------------------------------------------------------- @@ -73,22 +73,23 @@ data HakyllArgs -------------------------------------------------------------------------------- -hakyllArgs :: HakyllArgs -hakyllArgs = modes +hakyllArgs :: Config.Configuration -> HakyllArgs +hakyllArgs conf = modes [ (Build $ verboseFlag def) &= help "Generate the site" , (Check (verboseFlag def) (False &= help "Check internal links only")) &= help "Validate the site output" , (Clean $ verboseFlag def) &= help "Clean up and remove cache" , (Deploy $ verboseFlag def) &= help "Upload/deploy your site" , (Help $ verboseFlag def) &= help "Show this message" &= auto - , (Preview (verboseFlag def) (portFlag 8000)) &= + , (Preview (verboseFlag def) (portFlag defaultPort)) &= help "[Deprecated] Please use the watch command" , (Rebuild $ verboseFlag def) &= help "Clean and build again" - , (Server (verboseFlag def) (portFlag 8000)) &= + , (Server (verboseFlag def) (portFlag defaultPort)) &= help "Start a preview server" - , (Watch (verboseFlag def) (portFlag 8000) (noServerFlag False) &= + , (Watch (verboseFlag def) (portFlag defaultPort) (noServerFlag False) &= help "Autocompile on changes and start a preview server. You can watch and recompile without running a server with --no-server.") ] &= help "Hakyll static site compiler" &= program progName + where defaultPort = Config.previewPort conf -------------------------------------------------------------------------------- |