withDevelAppPort to getApplicationDev, no more Dynamic
This commit is contained in:
parent
adecd25bc3
commit
abd23e57df
@ -7,7 +7,7 @@ module Yesod.Default.Main
|
||||
) where
|
||||
|
||||
import Yesod.Default.Config
|
||||
import Yesod.Logger (Logger, defaultDevelopmentLogger, logString, flushLogger)
|
||||
import Yesod.Logger (Logger, defaultDevelopmentLogger, logString)
|
||||
import Network.Wai (Application)
|
||||
import Network.Wai.Handler.Warp
|
||||
(runSettings, defaultSettings, settingsPort, settingsHost)
|
||||
@ -82,20 +82,15 @@ defaultRunner f app = do
|
||||
|
||||
-- | Run your development app using a custom environment type and loader
|
||||
-- function
|
||||
--
|
||||
-- > withDevelAppPort :: Dynamic
|
||||
-- > withDevelAppPort = toDyn $ defaultDevelApp customLoadAppConfig withMySite
|
||||
--
|
||||
defaultDevelApp
|
||||
:: (Show env, Read env)
|
||||
=> IO (AppConfig env extra) -- ^ A means to load your development @'AppConfig'@
|
||||
-> (AppConfig env extra -> Logger -> IO Application) -- ^ Get your @Application@
|
||||
-> ((Int, Application) -> IO ()) -> IO ()
|
||||
defaultDevelApp load getApp f = do
|
||||
-> IO (Int, Application)
|
||||
defaultDevelApp load getApp = do
|
||||
conf <- load
|
||||
logger <- defaultDevelopmentLogger
|
||||
let p = appPort conf
|
||||
logString logger $ "Devel application launched, listening on port " ++ show p
|
||||
app <- getApp conf logger
|
||||
f (p, app)
|
||||
flushLogger logger
|
||||
return (p, app)
|
||||
|
||||
@ -159,11 +159,9 @@ showPkgName = (\(D.PackageName n) -> n) . D.pkgName
|
||||
develFile :: D.PackageId -> T.Text
|
||||
develFile pid = [ST|
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
import "#{showPkgName pid}" Application (withDevelAppPort)
|
||||
import Data.Dynamic (fromDynamic)
|
||||
import "#{showPkgName pid}" Application (getApplicationDev)
|
||||
import Network.Wai.Handler.Warp
|
||||
(runSettings, defaultSettings, settingsPort, settingsHost)
|
||||
import Data.Maybe (fromJust)
|
||||
import Control.Concurrent (forkIO)
|
||||
import System.Directory (doesFileExist, removeFile)
|
||||
import System.Exit (exitSuccess)
|
||||
@ -171,13 +169,13 @@ import Control.Concurrent (threadDelay)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
putStrLn "Starting devel application"
|
||||
wdap <- (return . fromJust . fromDynamic) withDevelAppPort
|
||||
forkIO . wdap $ \(port, app) -> runSettings defaultSettings
|
||||
{ settingsPort = port
|
||||
, settingsHost = "0.0.0.0"
|
||||
} app
|
||||
loop
|
||||
putStrLn "Starting devel application"
|
||||
(port, app) <- getApplicationDev
|
||||
forkIO $ runSettings defaultSettings
|
||||
{ settingsPort = port
|
||||
, settingsHost = "0.0.0.0"
|
||||
} app
|
||||
loop
|
||||
|
||||
loop :: IO ()
|
||||
loop = do
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||
module Application
|
||||
( getApplication
|
||||
, withDevelAppPort
|
||||
, getApplicationDev
|
||||
) where
|
||||
|
||||
import Import
|
||||
@ -11,7 +11,6 @@ import Yesod.Auth
|
||||
import Yesod.Default.Config
|
||||
import Yesod.Default.Main
|
||||
import Yesod.Default.Handlers
|
||||
import Data.Dynamic (Dynamic, toDyn)
|
||||
#if DEVELOPMENT
|
||||
import Yesod.Logger (Logger, logBS)
|
||||
import Network.Wai.Middleware.RequestLogger (logHandleDev)
|
||||
@ -55,9 +54,9 @@ getApplication conf logger = do
|
||||
#endif
|
||||
|
||||
-- for yesod devel
|
||||
withDevelAppPort :: Dynamic
|
||||
withDevelAppPort =
|
||||
toDyn $ defaultDevelApp loader getApplication
|
||||
getApplicationDev :: IO (Int, Application)
|
||||
getApplicationDev =
|
||||
defaultDevelApp loader getApplication
|
||||
where
|
||||
loader = loadConfig (configSettings Development)
|
||||
{ csParseExtra = parseExtra
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||
module Application
|
||||
( getApplication
|
||||
, withDevelAppPort
|
||||
, getApplicationDev
|
||||
) where
|
||||
|
||||
import Import
|
||||
@ -18,7 +18,6 @@ import Yesod.Logger (Logger, logBS, toProduction)
|
||||
import Network.Wai.Middleware.RequestLogger (logHandle)
|
||||
#endif
|
||||
import Network.Wai (Application)
|
||||
import Data.Dynamic (Dynamic, toDyn)
|
||||
|
||||
-- Import all relevant handler modules here.
|
||||
import Handler.Root
|
||||
@ -48,9 +47,9 @@ getApplication conf logger = do
|
||||
#endif
|
||||
|
||||
-- for yesod devel
|
||||
withDevelAppPort :: Dynamic
|
||||
withDevelAppPort =
|
||||
toDyn $ defaultDevelApp loader getApplication
|
||||
getApplicationDev :: IO (Int, Application)
|
||||
getApplicationDev =
|
||||
defaultDevelApp loader getApplication
|
||||
where
|
||||
loader = loadConfig (configSettings Development)
|
||||
{ csParseExtra = parseExtra
|
||||
|
||||
Loading…
Reference in New Issue
Block a user