@@ -5,6 +5,7 @@ module Stackage.CompleteBuild
55 ( BuildType (..)
66 , BumpType (..)
77 , completeBuild
8+ , justCheck
89 ) where
910import Data.Default.Class (def)
1011import Data.Semigroup (Max (..), Option (..))
@@ -129,6 +130,25 @@ renderLTSVer lts = fpFromText $ concat
129130 , ".yaml"
130131 ]
131132
133+-- | Generate and check a new build plan, but do not execute it.
134+--
135+-- Since 0.3.1
136+justCheck :: IO ()
137+justCheck = withManager tlsManagerSettings $ \man -> do
138+ putStrLn "Loading build constraints"
139+ bc <- defaultBuildConstraints man
140+
141+ putStrLn "Creating build plan"
142+ plan <- newBuildPlan bc
143+
144+ putStrLn $ "Writing build plan to check-plan.yaml"
145+ encodeFile "check-plan.yaml" plan
146+
147+ putStrLn "Checking plan"
148+ checkBuildPlan plan
149+
150+ putStrLn "Plan seems valid!"
151+
132152completeBuild :: BuildType -> IO ()
133153completeBuild buildType = withManager tlsManagerSettings $ \man -> do
134154 hSetBuffering stdout LineBuffering