[scaffold] refactor uses of CPP into pure Haskell
This commit is contained in:
parent
8d0f429c62
commit
687961cd22
@ -10,13 +10,8 @@ import Yesod.Auth
|
|||||||
import Yesod.Default.Config
|
import Yesod.Default.Config
|
||||||
import Yesod.Default.Main
|
import Yesod.Default.Main
|
||||||
import Yesod.Default.Handlers
|
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 Yesod.Logger (Logger, logBS, toProduction)
|
||||||
import Network.Wai.Middleware.RequestLogger (logCallback)
|
import Network.Wai.Middleware.RequestLogger (logCallback, logCallbackDev)
|
||||||
#endif
|
|
||||||
import qualified Database.Persist.Store~importMigration~
|
import qualified Database.Persist.Store~importMigration~
|
||||||
import Network.HTTP.Conduit (newManager, def)
|
import Network.HTTP.Conduit (newManager, def)
|
||||||
|
|
||||||
@ -38,13 +33,8 @@ makeApplication conf logger = do
|
|||||||
app <- toWaiAppPlain foundation
|
app <- toWaiAppPlain foundation
|
||||||
return $ logWare app
|
return $ logWare app
|
||||||
where
|
where
|
||||||
#ifdef DEVELOPMENT
|
logWare = dev logCallbackDev logCallback (logBS setLogger)
|
||||||
logWare = logCallbackDev (logBS setLogger)
|
setLogger = dev id toProduction logger
|
||||||
setLogger = logger
|
|
||||||
#else
|
|
||||||
setLogger = toProduction logger -- by default the logger is set for development
|
|
||||||
logWare = logCallback (logBS setLogger)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO ~sitearg~
|
makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO ~sitearg~
|
||||||
makeFoundation conf setLogger = do
|
makeFoundation conf setLogger = do
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import Data.Monoid (Monoid (mappend, mempty, mconcat))
|
|||||||
import Control.Applicative ((<$>), (<*>), pure)
|
import Control.Applicative ((<$>), (<*>), pure)
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Settings.StaticFiles
|
import Settings.StaticFiles
|
||||||
|
import Settings.Development
|
||||||
|
|
||||||
#if __GLASGOW_HASKELL__ < 704
|
#if __GLASGOW_HASKELL__ < 704
|
||||||
infixr 5 <>
|
infixr 5 <>
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import qualified Yesod.Default.Util
|
|||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Data.Yaml
|
import Data.Yaml
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
|
import Settings.Development
|
||||||
|
|
||||||
-- | Which Persistent backend this site is using.
|
-- | Which Persistent backend this site is using.
|
||||||
type PersistConfig = ~configPersist~
|
type PersistConfig = ~configPersist~
|
||||||
@ -53,11 +54,8 @@ staticRoot conf = [st|#{appRoot conf}/static|]
|
|||||||
-- user.
|
-- user.
|
||||||
|
|
||||||
widgetFile :: String -> Q Exp
|
widgetFile :: String -> Q Exp
|
||||||
#if DEVELOPMENT
|
widgetFile = dev Yesod.Default.Util.widgetFileReload
|
||||||
widgetFile = Yesod.Default.Util.widgetFileReload
|
Yesod.Default.Util.widgetFileNoReload
|
||||||
#else
|
|
||||||
widgetFile = Yesod.Default.Util.widgetFileNoReload
|
|
||||||
#endif
|
|
||||||
|
|
||||||
data Extra = Extra
|
data Extra = Extra
|
||||||
{ extraCopyright :: Text
|
{ extraCopyright :: Text
|
||||||
|
|||||||
12
yesod/scaffold/Settings/Development.hs.cg
Normal file
12
yesod/scaffold/Settings/Development.hs.cg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
module Settings.Development where
|
||||||
|
|
||||||
|
development :: Bool
|
||||||
|
development =
|
||||||
|
#if DEVELOPMENT
|
||||||
|
True
|
||||||
|
#else
|
||||||
|
False
|
||||||
|
#endif
|
||||||
|
|
||||||
|
dev :: a -> a -> a
|
||||||
|
dev a b = if development then a else b
|
||||||
@ -4,15 +4,11 @@ import Prelude (IO)
|
|||||||
import Yesod.Static
|
import Yesod.Static
|
||||||
import qualified Yesod.Static as Static
|
import qualified Yesod.Static as Static
|
||||||
import Settings (staticDir)
|
import Settings (staticDir)
|
||||||
|
import Settings.Development
|
||||||
|
|
||||||
-- | use this to create your static file serving site
|
-- | use this to create your static file serving site
|
||||||
staticSite :: IO Static.Static
|
staticSite :: IO Static.Static
|
||||||
staticSite =
|
staticSite = dev Static.staticDevel Static.static staticDir
|
||||||
#ifdef DEVELOPMENT
|
|
||||||
Static.staticDevel staticDir
|
|
||||||
#else
|
|
||||||
Static.static staticDir
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-- | This generates easy references to files in the static directory at compile time,
|
-- | This generates easy references to files in the static directory at compile time,
|
||||||
-- giving you compile-time verification that referenced files exist.
|
-- giving you compile-time verification that referenced files exist.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user