Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/dad5a1a6aa32bdef9f41cf5c39cc3aa67bf7070f

>---------------------------------------------------------------

commit dad5a1a6aa32bdef9f41cf5c39cc3aa67bf7070f
Author: Duncan Coutts <[email protected]>
Date:   Fri Feb 29 14:03:00 2008 +0000

    Remove 'info' command, make --dry-run cover that feature
    In -v mode info produced a detailed tree explaining the dependency
    resolution. That feature has been moved into 'install --dry-run -v'.

>---------------------------------------------------------------

 cabal-install/Hackage/Info.hs    |   41 +++----------------------------------
 cabal-install/Hackage/Install.hs |   19 +++++++++++------
 cabal-install/Main.hs            |   14 -------------
 3 files changed, 16 insertions(+), 58 deletions(-)

diff --git a/cabal-install/Hackage/Info.hs b/cabal-install/Hackage/Info.hs
index dfea310..57772b9 100644
--- a/cabal-install/Hackage/Info.hs
+++ b/cabal-install/Hackage/Info.hs
@@ -10,52 +10,19 @@
 --
 -- High level interface to a dry-run package installation.
 -----------------------------------------------------------------------------
-module Hackage.Info where
+module Hackage.Info (
+    flattenResolvedDependencies,
+    infoPkg
+  ) where
 
-import qualified Hackage.IndexUtils as IndexUtils
-import qualified Hackage.DepGraph as DepGraph
-import Hackage.Dependency 
 import Hackage.Fetch
 import Hackage.Types 
 import Hackage.Utils (showDependencies)
 
 import Distribution.Package (showPackageId, Package(..))
 import Distribution.ParseUtils (showDependency)
-import Distribution.Simple.Compiler (Compiler, PackageDB)
-import Distribution.Simple.Configure (getInstalledPackages)
-import Distribution.Simple.Program (ProgramConfiguration)
-import Distribution.Simple.Utils as Utils (notice, info)
-import Distribution.Verbosity (Verbosity)
 
 import Data.List (nubBy)
-import Data.Monoid (Monoid(mconcat))
-
-info :: Verbosity
-     -> PackageDB
-     -> [Repo]
-     -> Compiler
-     -> ProgramConfiguration
-     -> [UnresolvedDependency]
-     -> IO ()
-info verbosity packageDB repos comp conf deps
-    = do Just installed <- getInstalledPackages verbosity comp packageDB conf
-         available <- fmap mconcat (mapM (IndexUtils.readRepoIndex verbosity) 
repos)
-         deps' <- IndexUtils.disambiguateDependencies available deps
-         let apkgs = resolveDependencies comp installed available deps'
-         details <- mapM infoPkg (flattenResolvedDependencies apkgs)
-         Utils.info verbosity $ unlines (map ("  "++) (concat details))
-         case packagesToInstall apkgs of
-           Left missing -> notice verbosity $
-                "The requested packages cannot be installed, because of 
missing dependencies:\n"
-             ++ showDependencies missing
-
-           Right pkgs | DepGraph.empty pkgs -> notice verbosity $
-                "All requested packages already installed. Nothing to do."
-
-           Right pkgs -> notice verbosity $
-               "These packages would be installed:\n"
-             ++ unlines [ showPackageId (packageId pkg)
-                        | (DepGraph.ResolvedPackage pkg _ _) <- 
DepGraph.toList pkgs]
 
 flattenResolvedDependencies :: [ResolvedDependency] -> [ResolvedDependency]
 flattenResolvedDependencies = nubBy fulfillSame. concatMap flatten
diff --git a/cabal-install/Hackage/Install.hs b/cabal-install/Hackage/Install.hs
index 6047d51..d24d490 100644
--- a/cabal-install/Hackage/Install.hs
+++ b/cabal-install/Hackage/Install.hs
@@ -23,6 +23,7 @@ import System.FilePath ((</>),(<.>))
 
 import Hackage.Dependency (resolveDependencies, resolveDependenciesLocal, 
packagesToInstall)
 import Hackage.Fetch (fetchPackage)
+import qualified Hackage.Info as Info
 import qualified Hackage.IndexUtils as IndexUtils
 import qualified Hackage.DepGraph as DepGraph
 import Hackage.Setup (InstallFlags(..))
@@ -99,11 +100,13 @@ installLocalPackage verbosity packageDB repos comp conf 
configFlags dryRun =
       available <- fmap mconcat (mapM (IndexUtils.readRepoIndex verbosity) 
repos)
       let resolvedDeps = resolveDependenciesLocal comp installed available desc
                            (Cabal.configConfigurationsFlags configFlags)
+      details <- mapM Info.infoPkg (Info.flattenResolvedDependencies 
resolvedDeps)
+      info verbosity $ unlines (map ("  "++) (concat details))
       buildResults <- case packagesToInstall resolvedDeps of
         Left missing -> die $ "Unresolved dependencies: " ++ showDependencies 
missing
         Right pkgs   -> do
             if dryRun
-              then printDryRun pkgs >> return []
+              then printDryRun verbosity pkgs >> return []
               else installPackages verbosity configFlags pkgs
       if dryRun
         then return []
@@ -125,6 +128,8 @@ installRepoPackages verbosity packageDB repos comp conf 
configFlags dryRun deps
        available <- fmap mconcat (mapM (IndexUtils.readRepoIndex verbosity) 
repos)
        deps' <- IndexUtils.disambiguateDependencies available deps
        let resolvedDeps = resolveDependencies comp installed available deps'
+       details <- mapM Info.infoPkg (Info.flattenResolvedDependencies 
resolvedDeps)
+       info verbosity $ unlines (map ("  "++) (concat details))
        case packagesToInstall resolvedDeps of
          Left missing -> die $ "Unresolved dependencies: " ++ showDependencies 
missing
          Right pkgs
@@ -132,16 +137,16 @@ installRepoPackages verbosity packageDB repos comp conf 
configFlags dryRun deps
                      "All requested packages already installed. Nothing to do."
                      >> return []
            | dryRun -> do
-                printDryRun pkgs
+                printDryRun verbosity pkgs
                 return []
            | otherwise -> installPackages verbosity configFlags pkgs
 
-printDryRun :: DepGraph.DepGraph -> IO ()
-printDryRun pkgs
-  | DepGraph.empty pkgs = putStrLn "No packages to be installed."
+printDryRun :: Verbosity -> DepGraph.DepGraph -> IO ()
+printDryRun verbosity pkgs
+  | DepGraph.empty pkgs = notice verbosity "No packages to be installed."
   | otherwise = do
-        putStrLn "In order, the following would be installed:"
-        mapM_ (putStrLn . showPackageId) (order pkgs)
+        notice verbosity $ "In order, the following would be installed:\n"
+          ++ unlines (map showPackageId (order pkgs))
         where
         order ps
             | DepGraph.empty ps = []
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index cf40443..e265f75 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -27,7 +27,6 @@ import Hackage.Config           (SavedConfig(..), 
savedConfigToConfigFlags,
                                  configPackageDB)
 import Hackage.List             (list)
 import Hackage.Install          (install)
-import Hackage.Info             (info)
 import Hackage.Update           (update)
 import Hackage.Upgrade          (upgrade)
 import Hackage.Fetch            (fetch)
@@ -81,7 +80,6 @@ mainWorker args =
     commands =
       [configureCommand       `commandAddAction` configureAction
       ,installCommand         `commandAddAction` installAction
-      ,infoCommand            `commandAddAction` infoAction
       ,listCommand            `commandAddAction` listAction
       ,updateCommand          `commandAddAction` updateAction
       ,upgradeCommand         `commandAddAction` upgradeAction
@@ -132,18 +130,6 @@ installAction (cflags,iflags) extraArgs = do
           (fromFlag $ Cabal.configPackageDB cflags') (configRepos config)
           comp conf cflags' iflags pkgs
 
-infoAction :: Cabal.Flag Verbosity -> [String] -> IO ()
-infoAction verbosityFlag extraArgs = do
-  pkgs <- either die return (parsePackageArgs extraArgs)
-  configFile <- defaultConfigFile --FIXME
-  let verbosity = fromFlag verbosityFlag
-  config <- loadConfig verbosity configFile
-  let flags = savedConfigToConfigFlags (configPackageDB config) config
-  (comp, conf) <- configCompilerAux flags
-  info verbosity
-       (fromFlag $ Cabal.configPackageDB flags) (configRepos config)
-       comp conf pkgs
-
 listAction :: Cabal.Flag Verbosity -> [String] -> IO ()
 listAction verbosityFlag extraArgs = do
   configFile <- defaultConfigFile --FIXME



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to