-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdevel.hs
33 lines (28 loc) · 1.04 KB
/
devel.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{-# LANGUAGE CPP #-}
{-# LANGUAGE PackageImports #-}
import "Astrozodiak" Application (getApplicationDev)
import Control.Concurrent (forkIO, threadDelay)
import Network.Wai.Handler.Warp (defaultSettings, runSettings,
setPort)
import System.Directory (doesFileExist, removeFile)
import System.Exit (exitSuccess)
#ifndef mingw32_HOST_OS
import System.Posix.Signals (Handler (Catch), installHandler,
sigINT)
#endif
main :: IO ()
main = do
#ifndef mingw32_HOST_OS
_ <- installHandler sigINT (Catch $ return ()) Nothing
#endif
putStrLn "Starting devel application"
(port, app) <- getApplicationDev
forkIO $ runSettings (setPort port defaultSettings) app
loop
loop :: IO ()
loop = do
threadDelay 100000
e <- doesFileExist "yesod-devel/devel-terminate"
if e then terminateDevel else loop
terminateDevel :: IO ()
terminateDevel = exitSuccess