[commit: Cabal] : Don't say "Nothing to do" when installing the dependencies of a local package. (6f519d7)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:47:33 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch :
http://hackage.haskell.org/trac/ghc/changeset/6f519d7e9bdfd260fc8acbc6fce8a04de1319f2b
>---------------------------------------------------------------
commit 6f519d7e9bdfd260fc8acbc6fce8a04de1319f2b
Author: bjorn <bjorn at bringert.net>
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.
More information about the Cvs-libraries
mailing list