Merge pull request #1041 from chreekat/stack-keter

Enable stack with yesod keter
This commit is contained in:
Bryan Richter 2015-07-22 17:32:05 -07:00
commit 0588bfd6de
5 changed files with 21 additions and 13 deletions

View File

@ -15,3 +15,4 @@ packages:
- ./yesod-websockets - ./yesod-websockets
extra-deps: extra-deps:
- wai-app-static-3.1.0 - wai-app-static-3.1.0
- nonce-1.0.2

View File

@ -88,14 +88,14 @@ lockFile :: FilePath
lockFile = "yesod-devel/devel-terminate" lockFile = "yesod-devel/devel-terminate"
writeLock :: DevelOpts -> IO () writeLock :: DevelOpts -> IO ()
writeLock opts = do writeLock _opts = do
createDirectoryIfMissing True "yesod-devel" createDirectoryIfMissing True "yesod-devel"
writeFile lockFile "" writeFile lockFile ""
createDirectoryIfMissing True "dist" -- for compatibility with old devel.hs createDirectoryIfMissing True "dist" -- for compatibility with old devel.hs
writeFile "dist/devel-terminate" "" writeFile "dist/devel-terminate" ""
removeLock :: DevelOpts -> IO () removeLock :: DevelOpts -> IO ()
removeLock opts = do removeLock _opts = do
removeFileIfExists lockFile removeFileIfExists lockFile
removeFileIfExists "dist/devel-terminate" -- for compatibility with old devel.hs removeFileIfExists "dist/devel-terminate" -- for compatibility with old devel.hs
@ -138,6 +138,8 @@ defaultDevelOpts = DevelOpts
, proxyTimeout = 10 , proxyTimeout = 10
, useReverseProxy = True , useReverseProxy = True
, terminateWith = TerminateOnEnter , terminateWith = TerminateOnEnter
, develConfigOpts = []
, develEnv = Nothing
} }
cabalProgram :: DevelOpts -> FilePath cabalProgram :: DevelOpts -> FilePath
@ -197,7 +199,7 @@ reverseProxy opts iappPort = do
putStrLn "" putStrLn ""
loop (race_ httpProxy httpsProxy) `Ex.catch` \e -> do loop (race_ httpProxy httpsProxy) `Ex.catch` \e -> do
print (e :: Ex.SomeException) print (e :: Ex.SomeException)
exitFailure _ <- exitFailure
Ex.throwIO e -- heh, just for good measure Ex.throwIO e -- heh, just for good measure
where where
loop proxies = forever $ do loop proxies = forever $ do
@ -524,7 +526,7 @@ lookupLdAr = do
lookupLdAr' :: IO (Maybe (FilePath, FilePath)) lookupLdAr' :: IO (Maybe (FilePath, FilePath))
lookupLdAr' = do lookupLdAr' = do
#if MIN_VERSION_Cabal(1,22,0) #if MIN_VERSION_Cabal(1,18,0)
(_, _, pgmc) <- D.configCompilerEx (Just D.GHC) Nothing Nothing D.defaultProgramConfiguration D.silent (_, _, pgmc) <- D.configCompilerEx (Just D.GHC) Nothing Nothing D.defaultProgramConfiguration D.silent
#else #else
(_, pgmc) <- D.configCompiler (Just D.GHC) Nothing Nothing D.defaultProgramConfiguration D.silent (_, pgmc) <- D.configCompiler (Just D.GHC) Nothing Nothing D.defaultProgramConfiguration D.silent

View File

@ -3,9 +3,9 @@
module HsFile (mkHsFile) where module HsFile (mkHsFile) where
import Text.ProjectTemplate (createTemplate) import Text.ProjectTemplate (createTemplate)
import Data.Conduit import Data.Conduit
( ($$), (=$), ConduitM, awaitForever, yield, Source ) ( ($$), (=$), awaitForever)
import Data.Conduit.Filesystem (sourceDirectory) import Data.Conduit.Filesystem (sourceDirectory)
import Control.Monad.Trans.Resource (ResourceT, runResourceT) import Control.Monad.Trans.Resource (runResourceT)
import qualified Data.Conduit.List as CL import qualified Data.Conduit.List as CL
import qualified Data.ByteString as BS import qualified Data.ByteString as BS
import Control.Monad.IO.Class (liftIO) import Control.Monad.IO.Class (liftIO)

View File

@ -11,7 +11,6 @@ import System.Process
import Control.Monad import Control.Monad
import System.Directory hiding (findFiles) import System.Directory hiding (findFiles)
import Data.Maybe (mapMaybe) import Data.Maybe (mapMaybe)
import System.Directory (removeDirectoryRecursive)
import System.FilePath ((</>)) import System.FilePath ((</>))
import qualified Codec.Archive.Tar as Tar import qualified Codec.Archive.Tar as Tar
import Control.Exception import Control.Exception
@ -73,10 +72,12 @@ keter cabal noBuild noCopyTo = do
collapse' (x:xs) = x : collapse' xs collapse' (x:xs) = x : collapse' xs
collapse' [] = [] collapse' [] = []
unless noBuild $ do unless noBuild $ if elem "stack.yaml" files
run cabal ["clean"] then do run "stack" ["clean"]
run cabal ["configure"] createDirectoryIfMissing True "./dist/bin"
run cabal ["build"] run "stack"
(words "--local-bin-path ./dist/bin build --copy-bins")
else mapM_ (\x -> run cabal [x]) ["clean", "configure", "build"]
_ <- try' $ removeDirectoryRecursive "static/tmp" _ <- try' $ removeDirectoryRecursive "static/tmp"

View File

@ -9,7 +9,7 @@ import Control.Monad (when)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Distribution.Compiler (CompilerFlavor (..)) import Distribution.Compiler (CompilerFlavor (..))
import Distribution.Simple.Configure (configCompiler) import qualified Distribution.Simple.Configure as D
import Distribution.Simple.Program (arProgram, import Distribution.Simple.Program (arProgram,
defaultProgramConfiguration, defaultProgramConfiguration,
ghcProgram, ldProgram, ghcProgram, ldProgram,
@ -44,7 +44,11 @@ outFile = "yesod-devel/ghcargs.txt"
runProgram :: Program -> [String] -> IO ExitCode runProgram :: Program -> [String] -> IO ExitCode
runProgram pgm args = do runProgram pgm args = do
(comp, pgmc) <- configCompiler (Just GHC) Nothing Nothing defaultProgramConfiguration silent #if MIN_VERSION_Cabal(1,18,0)
(_, comp, pgmc) <- D.configCompilerEx (Just GHC) Nothing Nothing defaultProgramConfiguration silent
#else
(comp, pgmc) <- D.configCompiler (Just GHC) Nothing Nothing defaultProgramConfiguration silent
#endif
pgmc' <- configureAllKnownPrograms silent pgmc pgmc' <- configureAllKnownPrograms silent pgmc
case lookupProgram pgm pgmc' of case lookupProgram pgm pgmc' of
Nothing -> do Nothing -> do