Merge pull request #1041 from chreekat/stack-keter
Enable stack with yesod keter
This commit is contained in:
commit
0588bfd6de
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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"
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user