Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch :
http://hackage.haskell.org/trac/ghc/changeset/6f519d7e9bdfd260fc8acbc6fce8a04de1319f2b >--------------------------------------------------------------- commit 6f519d7e9bdfd260fc8acbc6fce8a04de1319f2b Author: bjorn <[email protected]> Date: Sat Oct 13 22:22:38 2007 +0000 Don't say "Nothing to do" when installing the dependencies of a local package. >--------------------------------------------------------------- cabal-install/Hackage/Install.hs | 31 ++++++++++++++++--------------- 1 files changed, 16 insertions(+), 15 deletions(-) diff --git a/cabal-install/Hackage/Install.hs b/cabal-install/Hackage/Install.hs index cb00ca7..bb1419f 100644 --- a/cabal-install/Hackage/Install.hs +++ b/cabal-install/Hackage/Install.hs @@ -11,9 +11,7 @@ -- High level interface to package installation. ----------------------------------------------------------------------------- module Hackage.Install - ( install -- :: ConfigFlags -> [UnresolvedDependency] -> IO () - , installPackages - , installPkg -- :: ConfigFlags -> (PackageIdentifier,[String],String) -> IO () + ( install ) where import Control.Exception (bracket_) @@ -30,7 +28,7 @@ import Hackage.Dependency (resolveDependencies, resolveDependenciesLocal, packag import Hackage.Fetch (fetchPackage) import Hackage.Tar (extractTarGzFile) import Hackage.Types (ConfigFlags(..), UnresolvedDependency(..) - , PkgInfo(..), pkgInfoId, ResolvedPackage) + , PkgInfo(..), pkgInfoId) import Distribution.Simple.Compiler (Compiler(..)) import Distribution.Simple.InstallDirs (InstallDirs(..), absoluteInstallDirs) @@ -49,8 +47,7 @@ import Distribution.Verbosity install :: ConfigFlags -> Compiler -> ProgramConfiguration -> [String] -> [UnresolvedDependency] -> IO () install cfg comp conf globalArgs deps | null deps = installLocalPackage cfg comp conf globalArgs - | otherwise = do resolvedDeps <- resolveDependencies cfg comp conf deps - installResolvedDeps cfg comp globalArgs resolvedDeps + | otherwise = installRepoPackages cfg comp conf globalArgs deps -- | Install the unpacked package in the current directory, and all its dependencies. installLocalPackage :: ConfigFlags -> Compiler -> ProgramConfiguration -> [String] -> IO () @@ -58,15 +55,19 @@ installLocalPackage cfg comp conf globalArgs = do cabalFile <- defaultPackageDesc (configVerbose cfg) desc <- readPackageDescription (configVerbose cfg) cabalFile resolvedDeps <- resolveDependenciesLocal cfg comp conf desc globalArgs - installResolvedDeps cfg comp globalArgs resolvedDeps + case packagesToInstall resolvedDeps of + Left missing -> fail $ "Unresolved dependencies: " ++ show missing + Right pkgs -> installPackages cfg comp globalArgs pkgs let pkgId = package (packageDescription desc) installUnpackedPkg cfg comp globalArgs pkgId [] Nothing -installResolvedDeps :: ConfigFlags -> Compiler -> [String] -> [ResolvedPackage] -> IO () -installResolvedDeps cfg comp globalArgs resolvedDeps = - case packagesToInstall resolvedDeps of - Left missing -> fail $ "Unresolved dependencies: " ++ show missing - Right pkgs -> installPackages cfg comp globalArgs pkgs +installRepoPackages :: ConfigFlags -> Compiler -> ProgramConfiguration -> [String] -> [UnresolvedDependency] -> IO () +installRepoPackages cfg comp conf globalArgs deps = + do resolvedDeps <- resolveDependencies cfg comp conf deps + case packagesToInstall resolvedDeps of + Left missing -> fail $ "Unresolved dependencies: " ++ show missing + Right [] -> message cfg normal "All requested packages already installed. Nothing to do." + Right pkgs -> installPackages cfg comp globalArgs pkgs -- Attach the correct prefix flag to configure commands, -- correct --user flag to install commands and no options to other commands. @@ -99,9 +100,9 @@ installPackages :: ConfigFlags -> [String] -- ^Options which will be parse to every package. -> [(PkgInfo,[String])] -- ^ (Package, list of configure options) -> IO () -installPackages cfg comp globalArgs pkgs - | null pkgs = putStrLn "All requested packages already installed. Nothing to do." - | otherwise = mapM_ (installPkg cfg comp globalArgs) pkgs +installPackages cfg comp globalArgs pkgs = + mapM_ (installPkg cfg comp globalArgs) pkgs + {-| Download, build and install a given package with some given flags. _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
