[commit: Cabal] master: Refactoring: add listInstalledPackages, and use that everywhere instead of getInstalledPackages with lots of arguments that all come from ConfigFlags. (ad21723)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:45:03 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/ad217231ed6e57b55c7e2a74215aa2c467bb7503
>---------------------------------------------------------------
commit ad217231ed6e57b55c7e2a74215aa2c467bb7503
Author: bjorn <bjorn at bringert.net>
Date: Thu Oct 4 14:44:21 2007 +0000
Refactoring: add listInstalledPackages, and use that everywhere instead of getInstalledPackages with lots of arguments that all come from ConfigFlags.
>---------------------------------------------------------------
.../src/Network/Hackage/CabalInstall/BuildDep.hs | 12 ++++--------
.../src/Network/Hackage/CabalInstall/Dependency.hs | 14 ++++++++++++++
.../src/Network/Hackage/CabalInstall/Info.hs | 11 +++--------
.../src/Network/Hackage/CabalInstall/Install.hs | 11 +++--------
4 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs b/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs
index 7df4bf2..c762505 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/BuildDep.hs
@@ -12,14 +12,14 @@
-----------------------------------------------------------------------------
module Network.Hackage.CabalInstall.BuildDep where
-import Network.Hackage.CabalInstall.Dependency (getPackages, getBuildDeps, depToUnresolvedDep, resolveDependenciesAux)
+import Network.Hackage.CabalInstall.Dependency (getPackages, getBuildDeps
+ , listInstalledPackages
+ , depToUnresolvedDep, resolveDependenciesAux)
import Network.Hackage.CabalInstall.Install (install, installPkg)
import Network.Hackage.CabalInstall.Types (ConfigFlags (..), UnresolvedDependency)
import Distribution.PackageDescription (readPackageDescription, buildDepends,
GenericPackageDescription(..))
-import Distribution.Simple.Configure (getInstalledPackages)
-import Distribution.Simple.Compiler (PackageDB(..))
{-|
This function behaves exactly like 'Network.Hackage.CabalInstall.Install.install' except
@@ -27,11 +27,7 @@ import Distribution.Simple.Compiler (PackageDB(..))
-}
buildDep :: ConfigFlags -> [String] -> [UnresolvedDependency] -> IO ()
buildDep cfg globalArgs deps
- = do Just ipkgs <- getInstalledPackages
- (configVerbose cfg) (configCompiler cfg)
- (if configUserIns cfg then UserPackageDB
- else GlobalPackageDB)
- (configPrograms cfg)
+ = do ipkgs <- listInstalledPackages cfg
apkgs <- fmap getPackages (fmap (getBuildDeps ipkgs)
(resolveDependenciesAux cfg ipkgs deps))
mapM_ (installPkg cfg globalArgs) apkgs
diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
index 77d3339..af7544b 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
@@ -15,6 +15,8 @@ module Network.Hackage.CabalInstall.Dependency
-- * Dependency resolution
resolveDependencies
, resolveDependenciesAux
+ -- * Installed packages
+ , listInstalledPackages
-- * Utilities
, depToUnresolvedDep
, getPackages -- :: [ResolvedPackage] -> [(PackageIdentifier,[String],String)]
@@ -26,6 +28,8 @@ module Network.Hackage.CabalInstall.Dependency
import Distribution.Version (Dependency(..), withinRange)
import Distribution.Package (PackageIdentifier(..))
import Distribution.ParseUtils (showDependency)
+import Distribution.Simple.Configure (getInstalledPackages)
+import Distribution.Simple.Compiler (PackageDB(..))
import Data.List (nub, maximumBy)
import Data.Maybe (mapMaybe)
@@ -193,3 +197,13 @@ resolveDependencies :: ConfigFlags
-> IO [ResolvedPackage]
resolveDependencies cfg ps deps
= fmap (flattenDepList ps) (resolveDependenciesAux cfg ps deps)
+
+
+listInstalledPackages :: ConfigFlags -> IO [PackageIdentifier]
+listInstalledPackages cfg =
+ do Just ipkgs <- getInstalledPackages
+ (configVerbose cfg) (configCompiler cfg)
+ (if configUserIns cfg then UserPackageDB
+ else GlobalPackageDB)
+ (configPrograms cfg)
+ return ipkgs
diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Info.hs b/cabal-install/src/Network/Hackage/CabalInstall/Info.hs
index 6200ca7..c6d85b1 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/Info.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/Info.hs
@@ -12,24 +12,19 @@
-----------------------------------------------------------------------------
module Network.Hackage.CabalInstall.Info where
-import Network.Hackage.CabalInstall.Dependency (resolveDependencies, fulfillDependency)
+import Network.Hackage.CabalInstall.Dependency
+ (resolveDependencies, fulfillDependency, listInstalledPackages)
import Network.Hackage.CabalInstall.Fetch (isFetched, packageFile)
import Network.Hackage.CabalInstall.Types (ConfigFlags(..), ResolvedPackage(..)
,UnresolvedDependency(..), OutputGen(..))
import Distribution.Package (PackageIdentifier)
-import Distribution.Simple.Configure (getInstalledPackages)
-import Distribution.Simple.Compiler (PackageDB(..))
import Data.Maybe (listToMaybe)
info :: ConfigFlags -> [String] -> [UnresolvedDependency] -> IO ()
info cfg globalArgs deps
- = do Just ipkgs <- getInstalledPackages
- (configVerbose cfg) (configCompiler cfg)
- (if configUserIns cfg then UserPackageDB
- else GlobalPackageDB)
- (configPrograms cfg)
+ = do ipkgs <- listInstalledPackages cfg
apkgs <- resolveDependencies cfg [] deps
mapM_ (infoPkg cfg ipkgs globalArgs) apkgs
diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Install.hs b/cabal-install/src/Network/Hackage/CabalInstall/Install.hs
index 26618ca..33a90b1 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/Install.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/Install.hs
@@ -20,15 +20,14 @@ import Data.Maybe (fromJust)
import Debug.Trace
import Control.Exception (bracket_)
-import Network.Hackage.CabalInstall.Dependency (getPackages, resolveDependencies)
+import Network.Hackage.CabalInstall.Dependency (getPackages, resolveDependencies
+ , listInstalledPackages)
import Network.Hackage.CabalInstall.Fetch (isFetched, packageFile, fetchPackage)
import Network.Hackage.CabalInstall.Types (ConfigFlags(..), UnresolvedDependency(..)
,OutputGen(..))
import Network.Hackage.CabalInstall.TarUtils
import Distribution.Simple.SetupWrapper (setupWrapper)
-import Distribution.Simple.Configure (getInstalledPackages)
-import Distribution.Simple.Compiler (PackageDB(..))
import Distribution.Package (showPackageId, PackageIdentifier)
import Distribution.Verbosity
import System.FilePath ((</>), splitFileName)
@@ -45,11 +44,7 @@ import System.Posix.Signals
-- |Installs the packages needed to satisfy a list of dependencies.
install :: ConfigFlags -> [String] -> [UnresolvedDependency] -> IO ()
install cfg globalArgs deps
- = do Just ipkgs <- getInstalledPackages
- (configVerbose cfg) (configCompiler cfg)
- (if configUserIns cfg then UserPackageDB
- else GlobalPackageDB)
- (configPrograms cfg)
+ = do ipkgs <- listInstalledPackages cfg
resolvedDeps <- resolveDependencies cfg ipkgs deps
let apkgs = getPackages resolvedDeps
if null apkgs
More information about the Cvs-libraries
mailing list