[commit: Cabal] master: Switch install to use resolveDependenciesWithProgress (41195c6)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:54:25 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/41195c6335c9d986cb585607f476d29e35b49ccc
>---------------------------------------------------------------
commit 41195c6335c9d986cb585607f476d29e35b49ccc
Author: Duncan Coutts <duncan at haskell.org>
Date: Fri May 30 17:01:02 2008 +0000
Switch install to use resolveDependenciesWithProgress
And show progress messages at verbosity level 2.
>---------------------------------------------------------------
cabal-install/Hackage/Fetch.hs | 1 -
cabal-install/Hackage/Install.hs | 15 +++++++++------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/cabal-install/Hackage/Fetch.hs b/cabal-install/Hackage/Fetch.hs
index 402083b..3716177 100644
--- a/cabal-install/Hackage/Fetch.hs
+++ b/cabal-install/Hackage/Fetch.hs
@@ -29,7 +29,6 @@ import Hackage.Types
import Hackage.Dependency (resolveDependencies)
import qualified Hackage.IndexUtils as IndexUtils
import qualified Hackage.InstallPlan as InstallPlan
-import Hackage.Utils (showDependencies)
import Hackage.HttpUtils (getHTTP)
import Distribution.Package
diff --git a/cabal-install/Hackage/Install.hs b/cabal-install/Hackage/Install.hs
index a7d20f5..6731b97 100644
--- a/cabal-install/Hackage/Install.hs
+++ b/cabal-install/Hackage/Install.hs
@@ -26,7 +26,8 @@ import System.Directory
( getTemporaryDirectory, doesFileExist )
import System.FilePath ((</>),(<.>))
-import Hackage.Dependency (resolveDependencies, upgradableDependencies)
+import Hackage.Dependency (resolveDependenciesWithProgress, upgradableDependencies)
+import Hackage.Dependency.Types (Progress(..), foldProgress)
import Hackage.Fetch (fetchPackage)
-- import qualified Hackage.Info as Info
import qualified Hackage.IndexUtils as IndexUtils
@@ -112,7 +113,7 @@ upgrade verbosity packageDB repos comp =
type Planner = Maybe (PackageIndex InstalledPackageInfo)
-> PackageIndex AvailablePackage
- -> IO (Either String (InstallPlan BuildResult))
+ -> IO (Progress String String (InstallPlan BuildResult))
-- |Installs the packages generated by a planner.
installWithPlanner ::
@@ -129,9 +130,11 @@ installWithPlanner planner verbosity packageDB repos comp conf configFlags insta
installed <- getInstalledPackages verbosity comp packageDB conf
available <- fmap mconcat (mapM (IndexUtils.readRepoIndex verbosity) repos)
- maybePlan <- planner installed available
+ progress <- planner installed available
info verbosity "Resolving dependencies..."
+ maybePlan <- foldProgress (\message rest -> info verbosity message >> rest)
+ (return . Left) (return . Right) progress
case maybePlan of
Left message -> die message
Right installPlan -> do
@@ -188,7 +191,7 @@ planLocalPackage verbosity comp configFlags installed available = do
depFlags = Cabal.configConfigurationsFlags configFlags
}
- return $ resolveDependencies buildOS buildArch (compilerId comp)
+ return $ resolveDependenciesWithProgress buildOS buildArch (compilerId comp)
installed' available' [localPkgDep]
-- | Make an 'InstallPlan' for the given dependencies.
@@ -196,12 +199,12 @@ planLocalPackage verbosity comp configFlags installed available = do
planRepoPackages :: Compiler -> [UnresolvedDependency] -> Planner
planRepoPackages comp deps installed available = do
deps' <- IndexUtils.disambiguateDependencies available deps
- return $ resolveDependencies buildOS buildArch (compilerId comp)
+ return $ resolveDependenciesWithProgress buildOS buildArch (compilerId comp)
installed available deps'
planUpgradePackages :: Compiler -> Planner
planUpgradePackages comp (Just installed) available = return $
- resolveDependencies buildOS buildArch (compilerId comp) (Just installed) available
+ resolveDependenciesWithProgress buildOS buildArch (compilerId comp) (Just installed) available
[ UnresolvedDependency dep []
| dep <- upgradableDependencies installed available ]
planUpgradePackages comp _ _ =
More information about the Cvs-libraries
mailing list