@@ -1,7 +1,7 @@
11{-# LANGUAGE RecordWildCards #-}
22import Data.Set (fromList)
33import Stackage.Build (build, defaultBuildSettings)
4−import Stackage.BuildPlan (readBuildPlan, writeBuildPlan)
4+import Stackage.BuildPlan (readBuildPlan, writeBuildPlan, writeBuildPlanCsv)
55import Stackage.CheckPlan (checkPlan)
66import Stackage.GhcPkg (getGhcVersion)
77import Stackage.Init (stackageInit)
@@ -20,6 +20,7 @@ data SelectArgs = SelectArgs
2020 , onlyPermissive :: Bool
2121 , allowed :: [String]
2222 , buildPlanDest :: FilePath
23+ , buildPlanCsvDest :: FilePath
2324 , globalDB :: Bool
2425 }
2526
@@ -32,6 +33,7 @@ parseSelectArgs =
3233 , onlyPermissive = False
3334 , allowed = []
3435 , buildPlanDest = defaultBuildPlan
36+ , buildPlanCsvDest = defaultBuildPlanCsv
3537 , globalDB = False
3638 }
3739 where
@@ -43,6 +45,7 @@ parseSelectArgs =
4345 loop x ("--only-permissive":rest) = loop x { onlyPermissive = True } rest
4446 loop x ("--allow":y:rest) = loop x { allowed = y : allowed x } rest
4547 loop x ("--build-plan":y:rest) = loop x { buildPlanDest = y } rest
48+ loop x ("--build-plan-csv":y:rest) = loop x { buildPlanCsvDest = y } rest
4649 loop x ("--use-global-db":rest) = loop x { globalDB = True } rest
4750 loop _ (y:_) = error $ "Did not understand argument: " ++ y
4851
@@ -78,6 +81,9 @@ parseBuildArgs version =
7881defaultBuildPlan :: FilePath
7982defaultBuildPlan = "build-plan.txt"
8083
84+defaultBuildPlanCsv :: FilePath
85+defaultBuildPlanCsv = "build-plan.csv"
86+
8187withBuildSettings :: [String] -> (BuildSettings -> BuildPlan -> IO a) -> IO a
8288withBuildSettings args f = do
8389 version <- getGhcVersion
@@ -114,6 +120,7 @@ main = do
114120 , useGlobalDatabase = globalDB
115121 }
116122 writeBuildPlan buildPlanDest bp
123+ writeBuildPlanCsv buildPlanCsvDest bp
117124 ("check":rest) -> withBuildSettings rest checkPlan
118125 ("build":rest) -> withBuildSettings rest build
119126 ("test":rest) -> withBuildSettings rest runTestSuites