diff --git a/yesod/Scaffolding/Scaffolder.hs b/yesod/Scaffolding/Scaffolder.hs index ffdd25da..8c1aa07f 100644 --- a/yesod/Scaffolding/Scaffolder.hs +++ b/yesod/Scaffolding/Scaffolder.hs @@ -155,6 +155,7 @@ scaffold = do writeFile' "Model.hs" $(codegen "Model.hs") writeFile' "Settings.hs" $(codegen "Settings.hs") writeFile' "Settings/StaticFiles.hs" $(codegen "Settings/StaticFiles.hs") + writeFile' "Settings/Development.hs" $(codegen "Settings/Development.hs") writeFile' "static/css/bootstrap.css" $(codegen "static/css/bootstrap.css") writeFile' "templates/default-layout.hamlet" diff --git a/yesod/scaffold/Application.hs.cg b/yesod/scaffold/Application.hs.cg index c69b4c74..e2de8390 100644 --- a/yesod/scaffold/Application.hs.cg +++ b/yesod/scaffold/Application.hs.cg @@ -11,13 +11,8 @@ import Yesod.Auth import Yesod.Default.Config import Yesod.Default.Main import Yesod.Default.Handlers -#if DEVELOPMENT -import Yesod.Logger (Logger, logBS) -import Network.Wai.Middleware.RequestLogger (logCallbackDev) -#else import Yesod.Logger (Logger, logBS, toProduction) -import Network.Wai.Middleware.RequestLogger (logCallback) -#endif +import Network.Wai.Middleware.RequestLogger (logCallback, logCallbackDev) import qualified Database.Persist.Store~importMigration~ import Network.HTTP.Conduit (newManager, def) @@ -40,13 +35,9 @@ makeApplication conf logger = do app <- toWaiAppPlain foundation return $ logWare app where -#ifdef DEVELOPMENT - logWare = logCallbackDev (logBS setLogger) - setLogger = logger -#else - setLogger = toProduction logger -- by default the logger is set for development - logWare = logCallback (logBS setLogger) -#endif + setLogger = if development then logger else toProduction logger + logWare = if development then logCallbackDev (logBS setLogger) + else logCallback (logBS setLogger) makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO ~sitearg~ makeFoundation conf setLogger = do diff --git a/yesod/scaffold/Import.hs.cg b/yesod/scaffold/Import.hs.cg index bc64119d..641de382 100644 --- a/yesod/scaffold/Import.hs.cg +++ b/yesod/scaffold/Import.hs.cg @@ -3,6 +3,7 @@ module Import , module Yesod , module Foundation , module Settings.StaticFiles + , module Settings.Development , module Data.Monoid , module Control.Applicative , Text @@ -18,6 +19,7 @@ import Data.Monoid (Monoid (mappend, mempty, mconcat)) import Control.Applicative ((<$>), (<*>), pure) import Data.Text (Text) import Settings.StaticFiles +import Settings.Development #if __GLASGOW_HASKELL__ < 704 infixr 5 <> diff --git a/yesod/scaffold/Settings.hs.cg b/yesod/scaffold/Settings.hs.cg index e022d478..8a8af894 100644 --- a/yesod/scaffold/Settings.hs.cg +++ b/yesod/scaffold/Settings.hs.cg @@ -21,6 +21,7 @@ import qualified Yesod.Default.Util import Data.Text (Text) import Data.Yaml import Control.Applicative +import Settings.Development -- | Which Persistent backend this site is using. type PersistConfig = ~configPersist~ @@ -53,11 +54,8 @@ staticRoot conf = [st|#{appRoot conf}/static|] -- user. widgetFile :: String -> Q Exp -#if DEVELOPMENT -widgetFile = Yesod.Default.Util.widgetFileReload -#else -widgetFile = Yesod.Default.Util.widgetFileNoReload -#endif +widgetFile = if development then Yesod.Default.Util.widgetFileReload + else Yesod.Default.Util.widgetFileNoReload data Extra = Extra { extraCopyright :: Text diff --git a/yesod/scaffold/Settings/Development.hs.cg b/yesod/scaffold/Settings/Development.hs.cg new file mode 100644 index 00000000..73613f0b --- /dev/null +++ b/yesod/scaffold/Settings/Development.hs.cg @@ -0,0 +1,14 @@ +module Settings.Development where + +import Prelude + +development :: Bool +development = +#if DEVELOPMENT + True +#else + False +#endif + +production :: Bool +production = not development diff --git a/yesod/scaffold/Settings/StaticFiles.hs.cg b/yesod/scaffold/Settings/StaticFiles.hs.cg index e6048731..25107956 100644 --- a/yesod/scaffold/Settings/StaticFiles.hs.cg +++ b/yesod/scaffold/Settings/StaticFiles.hs.cg @@ -4,15 +4,12 @@ import Prelude (IO) import Yesod.Static import qualified Yesod.Static as Static import Settings (staticDir) +import Settings.Development -- | use this to create your static file serving site staticSite :: IO Static.Static -staticSite = -#ifdef DEVELOPMENT - Static.staticDevel staticDir -#else - Static.static staticDir -#endif +staticSite = if development then Static.staticDevel staticDir + else Static.static staticDir -- | This generates easy references to files in the static directory at compile time, -- giving you compile-time verification that referenced files exist. diff --git a/yesod/scaffold/project.cabal.cg b/yesod/scaffold/project.cabal.cg index 23b96b22..3b4b60b9 100644 --- a/yesod/scaffold/project.cabal.cg +++ b/yesod/scaffold/project.cabal.cg @@ -27,6 +27,7 @@ library Model Settings Settings.StaticFiles + Settings.Development Handler.Home if flag(dev) || flag(library-only) diff --git a/yesod/yesod.cabal b/yesod/yesod.cabal index e9d7a9cb..983439da 100644 --- a/yesod/yesod.cabal +++ b/yesod/yesod.cabal @@ -32,6 +32,7 @@ extra-source-files: scaffold/tests/main.hs.cg scaffold/tests/HomeTest.hs.cg scaffold/Settings.hs.cg + scaffold/Settings/Development.hs.cg scaffold/Settings/StaticFiles.hs.cg scaffold/Application.hs.cg scaffold/deploy/Procfile.cg