web: support wai-handler-devel for auto-rebuilding
Eg: hledger-web$ wai-handler-devel 5001 AppRun withWaiHandlerDevelApp
This commit is contained in:
parent
6496c1ef61
commit
d1447c984a
@ -5,14 +5,17 @@
|
|||||||
module AppRun (
|
module AppRun (
|
||||||
withApp
|
withApp
|
||||||
,withDevelApp
|
,withDevelApp
|
||||||
|
,withWaiHandlerDevelApp
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Data.Dynamic (Dynamic, toDyn)
|
import Data.Dynamic (Dynamic, toDyn)
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
import System.IO.Storage (withStore, putValue)
|
||||||
import Yesod.Helpers.Static
|
import Yesod.Helpers.Static
|
||||||
|
|
||||||
import Hledger.Data (nulljournal)
|
import Hledger
|
||||||
|
import Hledger.Cli
|
||||||
|
|
||||||
import App
|
import App
|
||||||
import Handlers
|
import Handlers
|
||||||
@ -30,6 +33,7 @@ mkYesodDispatch "App" resourcesApp
|
|||||||
withApp :: App -> (Application -> IO a) -> IO a
|
withApp :: App -> (Application -> IO a) -> IO a
|
||||||
withApp a f = toWaiApp a >>= f
|
withApp a f = toWaiApp a >>= f
|
||||||
|
|
||||||
|
-- Called by yesod devel.
|
||||||
withDevelApp :: Dynamic
|
withDevelApp :: Dynamic
|
||||||
withDevelApp = toDyn (withApp a :: (Application -> IO ()) -> IO ())
|
withDevelApp = toDyn (withApp a :: (Application -> IO ()) -> IO ())
|
||||||
where a = App{
|
where a = App{
|
||||||
@ -39,3 +43,21 @@ withDevelApp = toDyn (withApp a :: (Application -> IO ()) -> IO ())
|
|||||||
,appArgs=[]
|
,appArgs=[]
|
||||||
,appJournal=nulljournal
|
,appJournal=nulljournal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Called by wai-handler-devel.
|
||||||
|
-- Eg: cabal-dev/bin/wai-handler-devel 5001 AppRun withWaiHandlerDevelApp
|
||||||
|
withWaiHandlerDevelApp :: (Application -> IO ()) -> IO ()
|
||||||
|
withWaiHandlerDevelApp func = do
|
||||||
|
let f = "/repos/hledger/hledger-web/demo.journal"
|
||||||
|
ej <- readJournalFile Nothing f
|
||||||
|
let Right j = ej
|
||||||
|
let a = App{
|
||||||
|
getStatic=static Settings.staticdir
|
||||||
|
,appRoot=Settings.defapproot
|
||||||
|
,appOpts=[File f]
|
||||||
|
,appArgs=[]
|
||||||
|
,appJournal=j
|
||||||
|
}
|
||||||
|
withStore "hledger" $ do
|
||||||
|
putValue "hledger" "journal" j
|
||||||
|
withApp a func
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user