packages feed

run-haskell-module 0.0.1 → 0.0.2

raw patch · 3 files changed

+29/−20 lines, 3 files

Files

changelog.md view
@@ -1,4 +1,7 @@ Changelog =========+    0.0.2  Mar 2020+        * Expose better interface for package dependency when testing.+     0.0.1  Jan 2020         * Initial version
run-haskell-module.cabal view
@@ -4,13 +4,13 @@ -- -- see: https://github.com/sol/hpack ----- hash: 0d105f0142c4fbea46fc0f0bd6aaf9f891f5f4b75a748c0bc2d94e68f7ae8005+-- hash: f1d389aa2f37dcbecf3a47435f8585ee46026dc6d891387ac3a677cad60acc6e  name:                run-haskell-module-version:             0.0.1+version:             0.0.2 synopsis:            Running newly generated Haskell source module.-description:         To make sure freshly generated code runs,-                     we need to make it run in Stack/Cabal/GHC environment.+description:         Running generated test code in Stack/Cabal/GHC environment.+                     . license:             BSD3 license-file:        LICENSE stability:           beta@@ -18,7 +18,7 @@                      Dmitrii Krylov maintainer:          simons@cryp.to,                      mjgajda@gmail.com-copyright:           Copyright by Michal J. Gajda '2014-'2020+copyright:           Copyright by Migamake '2014-'2020 category:            Data, Tools build-type:          Simple extra-source-files:
src/Language/Haskell/RunHaskellModule.hs view
@@ -16,6 +16,7 @@ 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 @@   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 @@             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,12 +115,15 @@     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 res@(exe, exeArgs') | Just stackExec <- stack    = (stackExec, additionalFlags ++ [tool, "--"])+    let additionalPackagesArgs = map mkAdditionalPackagesArg additionalPackagesList++    let res@(exe, exeArgs') | Just stackExec <- stack    = (stackExec, [tool] ++ additionalFlags+                                                                   ++ (stackPackageArg <$> additionalPackagesList)+                                                                   ++ ["--"])                             | Just _         <- oldCabal = ("cabal", ["exec", tool, "--"])                             | Just _         <- newCabal = ("cabal", [cabalExec, tool, "--"] ++ additionalPackagesArgs)                             | otherwise                  = (tool, [])@@ -130,10 +136,10 @@     tool = case ghcTool of                Runner   -> "runghc"                Compiler -> "ghc"+    stackPackageArg arg = "--package=" ++ arg     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