[scaffold] refactor uses of CPP into pure Haskell

This commit is contained in:
Patrick Palka 2012-04-06 12:16:03 -04:00
parent 8d0f429c62
commit 687961cd22
5 changed files with 21 additions and 24 deletions

View File

@ -10,13 +10,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)
@ -38,13 +33,8 @@ 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
logWare = dev logCallbackDev logCallback (logBS setLogger)
setLogger = dev id toProduction logger
makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO ~sitearg~
makeFoundation conf setLogger = do

View File

@ -18,6 +18,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 <>

View File

@ -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 = dev Yesod.Default.Util.widgetFileReload
Yesod.Default.Util.widgetFileNoReload
data Extra = Extra
{ extraCopyright :: Text

View 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

View File

@ -4,15 +4,11 @@ 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 = dev Static.staticDevel 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.