From 999252ece13cd695d65fed9cd01960f5ef3c60ff Mon Sep 17 00:00:00 2001 From: Jorge Israel Peña Date: Thu, 29 Aug 2013 22:43:57 -0700 Subject: 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 --- src/Hakyll/Core/Configuration.hs | 5 +++++ 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 -------------------------------------------------------------------------------- -- cgit v1.2.3