on master help sign in
stackage check
commit4396bed20c52a1391af681f6d40788e1470b86c5 authorMichael Snoyman <michael@snoyman.com> dateThu 25 Dec 2014, 19:14 (12 years ago) parent203ba99
4 files changed+30−5
ChangeLog.md+4 Stackage/CompleteBuild.hs+20 app/stackage.hs+5−4 stackage.cabal+1−1
ChangeLog.md+4
@@ -1,3 +1,7 @@
1+## 0.3.1
2+
3+* Added `justCheck` and `stackage check` command line.
4+
15## 0.3.0.1
26
37Pre-fetch all packages from Hackage to catch Hackage downtime early.
Stackage/CompleteBuild.hs+20
@@ -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
app/stackage.hs+5−4
@@ -5,11 +5,12 @@ main :: IO ()
55main = do
66 args <- getArgs
77 case args of
8− [x] | Just y <- lookup x m -> completeBuild y
8+ [x] | Just y <- lookup x m -> y
99 _ -> error $ "Expected one argument, one of: " ++ unwords (map fst m)
1010 where
1111 m =
12− [ ("nightly", Nightly)
13− , ("lts-major", LTS Major)
14− , ("lts-minor", LTS Minor)
12+ [ ("nightly", completeBuild Nightly)
13+ , ("lts-major", completeBuild $ LTS Major)
14+ , ("lts-minor", completeBuild $ LTS Minor)
15+ , ("check", justCheck)
1516 ]
stackage.cabal+1−1
@@ -1,5 +1,5 @@
11name: stackage
2−version: 0.3.0.1
2+version: 0.3.1
33synopsis: "Stable Hackage," tools for creating a vetted set of packages from Hackage.
44description: Please see <http://www.stackage.org/package/stackage> for a description and documentation.
55homepage: https://github.com/fpco/stackage