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
