Skip to content

Commit

Permalink
devel.hs is a normal scaffolded file
Browse files Browse the repository at this point in the history
  • Loading branch information
snoyberg committed Jan 24, 2012
1 parent d0f9bc4 commit 3c44df1
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 35 deletions.
36 changes: 1 addition & 35 deletions yesod/Devel.hs
Expand Up @@ -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
Expand All @@ -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..."
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions yesod/Scaffolding/Scaffolder.hs
Expand Up @@ -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")
Expand Down
27 changes: 27 additions & 0 deletions 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
1 change: 1 addition & 0 deletions yesod/yesod.cabal
Expand Up @@ -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
Expand Down

0 comments on commit 3c44df1

Please sign in to comment.