diff --git a/yesod/Devel.hs b/yesod/Devel.hs index e3dddcae3..482c9d8fe 100644 --- a/yesod/Devel.hs +++ b/yesod/Devel.hs @@ -81,9 +81,6 @@ devel isDevel = do , "--disable-library-profiling" ] - exists <- doesFileExist "dist/devel.hs" - unless exists $ T.writeFile "dist/devel.hs" (develFile pid) - mainLoop isDevel _ <- getLine @@ -106,7 +103,7 @@ mainLoop isDevel = forever $ do removeLock putStrLn "Starting development server..." pkg <- pkgConfigs isDevel - ph <- runCommand $ concat ["runghc ", pkg, " dist/devel.hs"] + ph <- runCommand $ concat ["runghc ", pkg, " devel.hs"] watchTid <- forkIO . try_ $ do watchForChanges list putStrLn "Stopping development server..." @@ -156,37 +153,6 @@ watchForChanges list = do showPkgName :: D.PackageId -> String showPkgName = (\(D.PackageName n) -> n) . D.pkgName -develFile :: D.PackageId -> T.Text -develFile pid = [ST| -{-# LANGUAGE PackageImports #-} -import "#{showPkgName pid}" Application (getApplicationDev) -import Network.Wai.Handler.Warp - (runSettings, defaultSettings, settingsPort, settingsHost) -import Control.Concurrent (forkIO) -import System.Directory (doesFileExist, removeFile) -import System.Exit (exitSuccess) -import Control.Concurrent (threadDelay) - -main :: IO () -main = do - putStrLn "Starting devel application" - (port, app) <- getApplicationDev - forkIO $ runSettings defaultSettings - { settingsPort = port - , settingsHost = "0.0.0.0" - } app - loop - -loop :: IO () -loop = do - threadDelay 100000 - e <- doesFileExist "dist/devel-terminate" - if e then terminateDevel else loop - -terminateDevel :: IO () -terminateDevel = exitSuccess -|] - checkCabalFile :: D.GenericPackageDescription -> IO () checkCabalFile gpd = case D.condLibrary gpd of Nothing -> do diff --git a/yesod/Scaffolding/Scaffolder.hs b/yesod/Scaffolding/Scaffolder.hs index e5bcb6238..d8c95c489 100644 --- a/yesod/Scaffolding/Scaffolder.hs +++ b/yesod/Scaffolding/Scaffolder.hs @@ -156,6 +156,7 @@ scaffold = do writeFile' ("config/settings.yml") $(codegen "config/settings.yml") writeFile' ("main.hs") $(codegen "main.hs") + writeFile' ("devel.hs") $(codegen "devel.hs") writeFile' (project ++ ".cabal") $ ifTiny $(codegen "tiny/project.cabal") $(codegen "project.cabal") writeFile' ".ghci" $(codegen ".ghci") writeFile' "LICENSE" $(codegen "LICENSE") diff --git a/yesod/scaffold/devel.hs.cg b/yesod/scaffold/devel.hs.cg new file mode 100644 index 000000000..33621f8eb --- /dev/null +++ b/yesod/scaffold/devel.hs.cg @@ -0,0 +1,27 @@ +{-# LANGUAGE PackageImports #-} +import "~project~" Application (getApplicationDev) +import Network.Wai.Handler.Warp + (runSettings, defaultSettings, settingsPort, settingsHost) +import Control.Concurrent (forkIO) +import System.Directory (doesFileExist, removeFile) +import System.Exit (exitSuccess) +import Control.Concurrent (threadDelay) + +main :: IO () +main = do + putStrLn "Starting devel application" + (port, app) <- getApplicationDev + forkIO $ runSettings defaultSettings + { settingsPort = port + , settingsHost = "0.0.0.0" + } app + loop + +loop :: IO () +loop = do + threadDelay 100000 + e <- doesFileExist "dist/devel-terminate" + if e then terminateDevel else loop + +terminateDevel :: IO () +terminateDevel = exitSuccess diff --git a/yesod/yesod.cabal b/yesod/yesod.cabal index af2fcf506..a4c8a34a6 100644 --- a/yesod/yesod.cabal +++ b/yesod/yesod.cabal @@ -44,6 +44,7 @@ extra-source-files: scaffold/templates/default-layout-wrapper.hamlet.cg scaffold/deploy/Procfile.cg scaffold/main.hs.cg + scaffold/devel.hs.cg scaffold/Handler/Root.hs.cg scaffold/config/models.cg scaffold/config/sqlite.yml.cg