on master help sign in
More fixes for #35
c46a308Michael Snoyman
Stackage/Build.hs−1
@@ -41,7 +41,6 @@ defaultBuildSettings = BuildSettings
41
41
42build :: BuildSettings -> BuildPlan -> IO ()
42build :: BuildSettings -> BuildPlan -> IO ()
43build settings' bp = do
43build settings' bp = do
44− putStrLn "Checking Cabal version"
45 libVersion <- checkCabalVersion
44 libVersion <- checkCabalVersion
46
45
47 putStrLn "Wiping out old sandbox folder"
46 putStrLn "Wiping out old sandbox folder"
Stackage/CheckCabalVersion.hs+3−3
@@ -11,7 +11,6 @@ import qualified Data.Set as Set
11import Distribution.Text (simpleParse)
11import Distribution.Text (simpleParse)
12import Distribution.Version (withinRange)
12import Distribution.Version (withinRange)
13import Prelude hiding (pi)
13import Prelude hiding (pi)
14−import Stackage.CheckPlan
15import Stackage.Config
14import Stackage.Config
16import Stackage.InstallInfo
15import Stackage.InstallInfo
17import Stackage.Tarballs
16import Stackage.Tarballs
@@ -29,6 +28,7 @@ import System.Process (rawSystem, readProcess, runProcess,
29
28
30checkCabalVersion :: IO String
29checkCabalVersion :: IO String
31checkCabalVersion = do
30checkCabalVersion = do
31+ putStrLn "Checking Cabal version"
32 versionString <- readProcess "cabal" ["--version"] ""
32 versionString <- readProcess "cabal" ["--version"] ""
33 libVersion <-
33 libVersion <-
34 case map words $ lines versionString of
34 case map words $ lines versionString of
@@ -36,10 +36,10 @@ checkCabalVersion = do
36 _ -> error "Did not understand cabal --version output"
36 _ -> error "Did not understand cabal --version output"
37
37
38 case (simpleParse libVersion, simpleParse ">= 1.16") of
38 case (simpleParse libVersion, simpleParse ">= 1.16") of
39− (Nothing, _) -> error $ "Invalid Cabal library version: " ++ libVersion
39+ (Nothing, _) -> error $ "cabal binary reported an invalid Cabal library version: " ++ libVersion
40 (_, Nothing) -> assert False $ return ()
40 (_, Nothing) -> assert False $ return ()
41 (Just v, Just vr)
41 (Just v, Just vr)
42 | v `withinRange` vr -> return ()
42 | v `withinRange` vr -> return ()
43− | otherwise -> error $ "Unsupported Cabal library version: " ++ libVersion
43+ | otherwise -> error $ "cabal binary build against unsupported Cabal library version: " ++ libVersion
44
44
45 return libVersion
45 return libVersion
Stackage/CheckPlan.hs+3
@@ -12,12 +12,15 @@ import Stackage.Util
12import System.Exit (ExitCode (ExitFailure, ExitSuccess),
12import System.Exit (ExitCode (ExitFailure, ExitSuccess),
13 exitWith)
13 exitWith)
14import System.Process (readProcessWithExitCode)
14import System.Process (readProcessWithExitCode)
15+import Stackage.CheckCabalVersion (checkCabalVersion)
15
16
16data Mismatch = OnlyDryRun String | OnlySimpleList String
17data Mismatch = OnlyDryRun String | OnlySimpleList String
17 deriving Show
18 deriving Show
18
19
19checkPlan :: BuildPlan -> IO ()
20checkPlan :: BuildPlan -> IO ()
20checkPlan bp = do
21checkPlan bp = do
22+ _ <- checkCabalVersion
23+
21 putStrLn "Checking build plan"
24 putStrLn "Checking build plan"
22 (ec, dryRun', stderr) <- readProcessWithExitCode "cabal" (addCabalArgsOnlyGlobal $ "install":"--dry-run":bpPackageList bp) ""
25 (ec, dryRun', stderr) <- readProcessWithExitCode "cabal" (addCabalArgsOnlyGlobal $ "install":"--dry-run":bpPackageList bp) ""
23 when (ec /= ExitSuccess || "Warning:" `isPrefixOf` stderr) $ do
26 when (ec /= ExitSuccess || "Warning:" `isPrefixOf` stderr) $ do