Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/ad217231ed6e57b55c7e2a74215aa2c467bb7503

>---------------------------------------------------------------

commit ad217231ed6e57b55c7e2a74215aa2c467bb7503
Author: bjorn <[email protected]>
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



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to