on master help sign in
Generate Hackage maps #38
8e86316Michael Snoyman
.gitignore+1
@@ -14,3 +14,4 @@ cabal-dev
14/build-tools.log
14/build-tools.log
15/logs-tools/
15/logs-tools/
16build-plan.txt
16build-plan.txt
17+hackage-map.txt
Stackage/InstallInfo.hs+7
@@ -56,6 +56,7 @@ getInstallInfo settings = do
56
56
57 putStrLn "Printing build plan to build-plan.log"
57 putStrLn "Printing build plan to build-plan.log"
58 System.IO.UTF8.writeFile "build-plan.log" $ unlines $ map showDep $ Map.toList final
58 System.IO.UTF8.writeFile "build-plan.log" $ unlines $ map showDep $ Map.toList final
59+ System.IO.UTF8.writeFile "hackage-map.txt" $ unlines $ map showHackageMap $ Map.toList final
59
60
60 unless (Set.null errs) $ do
61 unless (Set.null errs) $ do
61 putStrLn "Build plan requires some disallowed packages"
62 putStrLn "Build plan requires some disallowed packages"
@@ -116,6 +117,12 @@ showDep (PackageName name, BuildInfo {..}) =
116 where
117 where
117 unP (PackageName p) = p
118 unP (PackageName p) = p
118
119
120+-- | Convert to format used by Hackage for displaying distribution versions.
121+-- For more info, see https://github.com/fpco/stackage/issues/38.
122+showHackageMap :: (PackageName, BuildInfo) -> String
123+showHackageMap (PackageName name, BuildInfo {..}) =
124+ show (name, showVersion biVersion, Nothing :: Maybe String)
125+
119bpPackageList :: BuildPlan -> [String]
126bpPackageList :: BuildPlan -> [String]
120bpPackageList = map packageVersionString . Map.toList . Map.map spiVersion . bpPackages
127bpPackageList = map packageVersionString . Map.toList . Map.map spiVersion . bpPackages
121
128