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

Reply via email to