From c46a3087243460cd77ea77287f1bdce18662c69b Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Sun, 27 Jan 2013 07:22:56 +0200 Subject: [PATCH] More fixes for #35 --- Stackage/Build.hs | 1 - Stackage/CheckCabalVersion.hs | 6 +++--- Stackage/CheckPlan.hs | 3 +++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Stackage/Build.hs b/Stackage/Build.hs index 4a179b62..5579ce88 100644 --- a/Stackage/Build.hs +++ b/Stackage/Build.hs @@ -41,7 +41,6 @@ defaultBuildSettings = BuildSettings build :: BuildSettings -> BuildPlan -> IO () build settings' bp = do - putStrLn "Checking Cabal version" libVersion <- checkCabalVersion putStrLn "Wiping out old sandbox folder" diff --git a/Stackage/CheckCabalVersion.hs b/Stackage/CheckCabalVersion.hs index 481c8305..f942f79e 100644 --- a/Stackage/CheckCabalVersion.hs +++ b/Stackage/CheckCabalVersion.hs @@ -11,7 +11,6 @@ import qualified Data.Set as Set import Distribution.Text (simpleParse) import Distribution.Version (withinRange) import Prelude hiding (pi) -import Stackage.CheckPlan import Stackage.Config import Stackage.InstallInfo import Stackage.Tarballs @@ -29,6 +28,7 @@ import System.Process (rawSystem, readProcess, runProcess, checkCabalVersion :: IO String checkCabalVersion = do + putStrLn "Checking Cabal version" versionString <- readProcess "cabal" ["--version"] "" libVersion <- case map words $ lines versionString of @@ -36,10 +36,10 @@ checkCabalVersion = do _ -> error "Did not understand cabal --version output" case (simpleParse libVersion, simpleParse ">= 1.16") of - (Nothing, _) -> error $ "Invalid Cabal library version: " ++ libVersion + (Nothing, _) -> error $ "cabal binary reported an invalid Cabal library version: " ++ libVersion (_, Nothing) -> assert False $ return () (Just v, Just vr) | v `withinRange` vr -> return () - | otherwise -> error $ "Unsupported Cabal library version: " ++ libVersion + | otherwise -> error $ "cabal binary build against unsupported Cabal library version: " ++ libVersion return libVersion diff --git a/Stackage/CheckPlan.hs b/Stackage/CheckPlan.hs index 0568a7ca..6c1df65b 100644 --- a/Stackage/CheckPlan.hs +++ b/Stackage/CheckPlan.hs @@ -12,12 +12,15 @@ import Stackage.Util import System.Exit (ExitCode (ExitFailure, ExitSuccess), exitWith) import System.Process (readProcessWithExitCode) +import Stackage.CheckCabalVersion (checkCabalVersion) data Mismatch = OnlyDryRun String | OnlySimpleList String deriving Show checkPlan :: BuildPlan -> IO () checkPlan bp = do + _ <- checkCabalVersion + putStrLn "Checking build plan" (ec, dryRun', stderr) <- readProcessWithExitCode "cabal" (addCabalArgsOnlyGlobal $ "install":"--dry-run":bpPackageList bp) "" when (ec /= ExitSuccess || "Warning:" `isPrefixOf` stderr) $ do