mirror of
https://github.com/migamake/json-autotype.git
synced 2024-10-04 03:07:19 +03:00
Add default packages list in run-haskell-module
This commit is contained in:
parent
fa03c7bfff
commit
1e0d9209d2
@ -16,6 +16,7 @@ import Control.Exception
|
||||
import Control.Monad
|
||||
import Data.Char
|
||||
import Data.Default
|
||||
import Data.Semigroup((<>))
|
||||
import System.Environment
|
||||
import System.Exit
|
||||
import System.FilePath.Posix
|
||||
@ -24,16 +25,18 @@ import System.Process
|
||||
|
||||
|
||||
data RunOptions = RunOptions
|
||||
{ verbose :: Bool
|
||||
, showStdout :: Bool
|
||||
, compileArgs :: [String]
|
||||
{ verbose :: Bool
|
||||
, showStdout :: Bool
|
||||
, compileArgs :: [String]
|
||||
, additionalPackages :: [String]
|
||||
}
|
||||
|
||||
|
||||
instance Default RunOptions where
|
||||
def = RunOptions { verbose = False
|
||||
, showStdout = False
|
||||
, compileArgs = []
|
||||
def = RunOptions { verbose = False
|
||||
, showStdout = False
|
||||
, compileArgs = []
|
||||
, additionalPackages = []
|
||||
}
|
||||
|
||||
|
||||
@ -52,7 +55,7 @@ callProcess' RunOptions{..} cmd args = do
|
||||
whenMaybe hClose pstderr
|
||||
return ExitSuccess
|
||||
ExitFailure r -> do
|
||||
whenMaybe (dumpHandle stdout) pstdout
|
||||
whenMaybe (dumpHandle stderr) pstdout
|
||||
whenMaybe (dumpHandle stderr) pstderr
|
||||
fail $ concat ["Running \"", cmd, "\" \"", show args, "\" has failed with \"", show r, "\""]
|
||||
where
|
||||
@ -112,11 +115,12 @@ findGhc RunOptions{..} ghcTool = do
|
||||
stack <- lookupEnv "STACK_EXE"
|
||||
oldCabal <- lookupEnv "CABAL_SANDBOX_CONFIG"
|
||||
newCabal <- lookupEnv "HASKELL_DIST_DIR"
|
||||
additionalFlags <- (maybe [] splitWithQuotes) <$> lookupEnv "CI_GHC_ADDITIONAL_FLAGS"
|
||||
additionalPackages <- ((additionalPackagesDef ++) . (maybe [] words)) <$> lookupEnv "CI_GHC_ADDITIONAL_PACKAGES"
|
||||
cabalStyle <- (maybe "v2" id) <$> lookupEnv "CI_GHC_CABAL_STYLE"
|
||||
additionalFlags <- (maybe [] splitWithQuotes) <$> lookupEnv "CI_GHC_ADDITIONAL_FLAGS"
|
||||
additionalPackagesList <- ((additionalPackages ++) . (maybe [] words)) <$> lookupEnv "CI_GHC_ADDITIONAL_PACKAGES"
|
||||
cabalStyle <- (maybe "v2" id) <$> lookupEnv "CI_GHC_CABAL_STYLE"
|
||||
let cabalExec = cabalStyle ++ "-exec"
|
||||
let additionalPackagesArgs = map mkAdditionalPackagesArg additionalPackages
|
||||
let additionalPackagesArgs = map mkAdditionalPackagesArg additionalPackagesList
|
||||
|
||||
let res@(exe, exeArgs') | Just stackExec <- stack = (stackExec, additionalFlags ++ [tool, "--"])
|
||||
| Just _ <- oldCabal = ("cabal", ["exec", tool, "--"])
|
||||
| Just _ <- newCabal = ("cabal", [cabalExec, tool, "--"] ++ additionalPackagesArgs)
|
||||
@ -131,9 +135,8 @@ findGhc RunOptions{..} ghcTool = do
|
||||
Runner -> "runghc"
|
||||
Compiler -> "ghc"
|
||||
mkAdditionalPackagesArg arg = case ghcTool of
|
||||
Runner -> "--ghc-arg=-package " ++ arg
|
||||
Compiler -> "-package " ++ arg
|
||||
additionalPackagesDef = []
|
||||
Runner -> "--ghc-arg=-package=" ++ arg
|
||||
Compiler -> "-package=" ++ arg
|
||||
|
||||
|
||||
passModuleToGhc :: RunOptions -> GhcTool -> FilePath -> [String] -> IO ExitCode
|
||||
|
Loading…
Reference in New Issue
Block a user