mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-11 23:08:30 +01:00
20 lines
878 B
Haskell
20 lines
878 B
Haskell
import qualified Data.Map as Map
|
|
import qualified Data.Set as Set
|
|
import Data.Version (showVersion)
|
|
import Stackage.HaskellPlatform
|
|
import Stackage.LoadDatabase
|
|
import Stackage.NarrowDatabase
|
|
import Stackage.PackageList
|
|
import Stackage.Types
|
|
import Stackage.Util
|
|
|
|
main :: IO ()
|
|
main = do
|
|
userPackages <- loadPackageList "package-list.txt"
|
|
hp <- loadHaskellPlatform
|
|
let allPackages = Map.union userPackages $ identsToRanges (hplibs hp)
|
|
pdb <- loadPackageDB (Set.map (\(PackageIdentifier p _) -> p) (hpcore hp)) allPackages
|
|
final <- narrowPackageDB pdb $ Set.fromList $ Map.keys allPackages
|
|
putStr "cabal-dev install -fnetwork23 --enable-tests "
|
|
mapM_ (\(PackageName p, v) -> putStr $ p ++ "-" ++ showVersion v ++ " ") $ Map.toList final
|