diff options
Diffstat (limited to 'devel.hs')
-rw-r--r-- | devel.hs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/devel.hs b/devel.hs new file mode 100644 index 0000000..e187f80 --- /dev/null +++ b/devel.hs @@ -0,0 +1,33 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE PackageImports #-} +import "turing-web" Application (getApplicationDev) +import Network.Wai.Handler.Warp + (runSettings, defaultSettings, setPort) +import Control.Concurrent (forkIO) +import System.Directory (doesFileExist, removeFile) +import System.Exit (exitSuccess) +import Control.Concurrent (threadDelay) + +#ifndef mingw32_HOST_OS +import System.Posix.Signals (installHandler, sigINT, Handler(Catch)) +#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 |