37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
{-# LANGUAGE PackageImports #-}
 | 
						|
import "hledger-web" Hledger.Web.Application (getApplicationDev)
 | 
						|
import Network.Wai.Handler.Warp
 | 
						|
    (runSettings, defaultSettings, settingsPort)
 | 
						|
import Control.Concurrent (forkIO)
 | 
						|
import System.Directory (doesFileExist, removeFile)
 | 
						|
import System.Exit (exitSuccess)
 | 
						|
import Control.Concurrent (threadDelay)
 | 
						|
 | 
						|
-- import Network.Wai.Middleware.Debug (debugHandle)
 | 
						|
-- import Yesod.Logger (logString, logLazyText, flushLogger, makeLogger)
 | 
						|
 | 
						|
main :: IO ()
 | 
						|
main = do
 | 
						|
    putStrLn "Starting devel application"
 | 
						|
    (port, app) <- getApplicationDev
 | 
						|
    forkIO $ runSettings defaultSettings
 | 
						|
        { settingsPort = port
 | 
						|
        } app
 | 
						|
    loop
 | 
						|
 | 
						|
loop :: IO ()
 | 
						|
loop = do
 | 
						|
  threadDelay 100000
 | 
						|
  e <- doesFileExist "dist/devel-terminate"
 | 
						|
  if e then terminateDevel else loop
 | 
						|
 | 
						|
terminateDevel :: IO ()
 | 
						|
terminateDevel = exitSuccess
 | 
						|
 | 
						|
--     logString logger $ (show env) ++ " application launched, listening on port " ++ show (appPort c)
 | 
						|
--     withApp c logger opts $ run (appPort c) . debugHandle (logHandle logger)
 | 
						|
--     flushLogger logger
 | 
						|
 | 
						|
--     where
 | 
						|
--         logHandle logger msg = logLazyText logger msg >> flushLogger logger
 |