@@ -3,6 +3,7 @@ module Stackage.InstallInfo
3 , iiPackageList
3 , iiPackageList
6+import Control.Monad (when)
6import qualified Data.Map as Map
7import qualified Data.Map as Map
7import qualified Data.Set as Set
8import qualified Data.Set as Set
8import Stackage.Config
9import Stackage.Config
@@ -11,6 +12,7 @@ import Stackage.LoadDatabase
11import Stackage.NarrowDatabase
12import Stackage.NarrowDatabase
12import Stackage.Types
13import Stackage.Types
13import Stackage.Util
14import Stackage.Util
15+import Data.Version (showVersion)
15getInstallInfo :: IO InstallInfo
17getInstallInfo :: IO InstallInfo
16getInstallInfo = do
18getInstallInfo = do
@@ -19,10 +21,26 @@ getInstallInfo = do
19 let totalCore = extraCore `Set.union` Set.map (\(PackageIdentifier p _) -> p) (hpcore hp)
21 let totalCore = extraCore `Set.union` Set.map (\(PackageIdentifier p _) -> p) (hpcore hp)
20 pdb <- loadPackageDB totalCore allPackages
22 pdb <- loadPackageDB totalCore allPackages
21 final <- narrowPackageDB pdb $ Set.fromList $ Map.keys allPackages
23 final <- narrowPackageDB pdb $ Set.fromList $ Map.keys allPackages
26+ putStrLn "Basic dependency listing:"
27+ mapM_ (putStrLn . showDep) $ Map.toList final
22 return InstallInfo
28 return InstallInfo
23 { iiCore = totalCore
29 { iiCore = totalCore
24− , iiPackages = final
30+ , iiPackages = Map.map fst final
33+showDep :: (PackageName, (Version, [PackageName])) -> String
34+showDep (name, (version, deps)) =
38+ , showVersion version
40+ , unwords $ map unP deps
43+ unP (PackageName p) = p
27iiPackageList :: InstallInfo -> [String]
45iiPackageList :: InstallInfo -> [String]
28iiPackageList = map packageVersionString . Map.toList . iiPackages
46iiPackageList = map packageVersionString . Map.toList . iiPackages