From f8d7858fb8d2d904939b40abb8dd72899780d5c1 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Sun, 1 Sep 2013 13:20:40 +0300 Subject: [PATCH] More replacement tarball tweaks --- Stackage/Build.hs | 2 +- Stackage/CheckPlan.hs | 7 ++++--- Stackage/Select.hs | 2 +- Stackage/Test.hs | 2 +- Stackage/Util.hs | 6 +++--- app/stackage.hs | 2 +- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Stackage/Build.hs b/Stackage/Build.hs index ff621a67..dad2f38a 100644 --- a/Stackage/Build.hs +++ b/Stackage/Build.hs @@ -81,7 +81,7 @@ build settings' bp = do putStrLn "Beginning Stackage build" ph <- withBinaryFile "build.log" WriteMode $ \handle -> do - packageList <- mapM (replaceTarball settings) $ bpPackageList bp + packageList <- mapM (replaceTarball $ tarballDir settings) $ bpPackageList bp let args = addCabalArgs settings BSBuild $ "install" : ("--cabal-lib-version=" ++ libVersion) diff --git a/Stackage/CheckPlan.hs b/Stackage/CheckPlan.hs index c1767625..454a394c 100644 --- a/Stackage/CheckPlan.hs +++ b/Stackage/CheckPlan.hs @@ -17,18 +17,19 @@ import System.Process (readProcessWithExitCode) data Mismatch = OnlyDryRun String | OnlySimpleList String deriving Show -checkPlan :: BuildPlan -> IO () -checkPlan bp = do +checkPlan :: BuildSettings -> BuildPlan -> IO () +checkPlan settings bp = do _ <- checkCabalVersion putStrLn "Checking build plan" + packages <- mapM (replaceTarball $ tarballDir settings) (bpPackageList bp) (ec, dryRun', stderr) <- readProcessWithExitCode "cabal" ( addCabalArgsOnlyGlobal $ "install" : "--dry-run" : "--max-backjumps=-1" : "--reorder-goals" - : bpPackageList bp + : packages ) "" when (ec /= ExitSuccess || "Warning:" `isPrefixOf` stderr) $ do putStr stderr diff --git a/Stackage/Select.hs b/Stackage/Select.hs index d5452b5b..cb88de82 100644 --- a/Stackage/Select.hs +++ b/Stackage/Select.hs @@ -44,7 +44,7 @@ defaultSelectSettings version = SelectSettings , useGlobalDatabase = False , skippedTests = empty , selectGhcVersion = version - , selectTarballDir = "tarballs" + , selectTarballDir = "patching/tarballs" } select :: SelectSettings -> IO BuildPlan diff --git a/Stackage/Test.hs b/Stackage/Test.hs index 6040d60b..9f3f63fd 100644 --- a/Stackage/Test.hs +++ b/Stackage/Test.hs @@ -97,7 +97,7 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do runGhcPackagePath = runGen True passed <- handle (\TestException -> return False) $ do - package' <- replaceTarball settings package + package' <- replaceTarball (tarballDir settings) package getHandle WriteMode $ run "cabal" ["unpack", package'] testdir getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir when spiHasTests $ do diff --git a/Stackage/Util.hs b/Stackage/Util.hs index 209095fb..33517e76 100644 --- a/Stackage/Util.hs +++ b/Stackage/Util.hs @@ -158,13 +158,13 @@ fixBuildSettings settings' = do -- | Check if a tarball exists in the tarball directory and, if so, use that -- instead of the given name. -replaceTarball :: BuildSettings +replaceTarball :: FilePath -- ^ tarball directory -> String -> IO String -replaceTarball bs pkgname = do +replaceTarball tarballdir pkgname = do exists <- doesFileExist fp if exists then canonicalizePath fp else return pkgname where - fp = tarballDir bs pkgname <.> "tar.gz" + fp = tarballdir pkgname <.> "tar.gz" diff --git a/app/stackage.hs b/app/stackage.hs index 636ae8cd..5bb27ef4 100644 --- a/app/stackage.hs +++ b/app/stackage.hs @@ -100,7 +100,7 @@ main = do , useGlobalDatabase = globalDB } writeBuildPlan buildPlanDest bp - ("check":rest) -> withBuildSettings rest $ const checkPlan + ("check":rest) -> withBuildSettings rest checkPlan ("build":rest) -> withBuildSettings rest build ("test":rest) -> withBuildSettings rest runTestSuites ("tarballs":rest) -> withBuildSettings rest $ const makeTarballs