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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/9b6c8bb220629f002c212c9d0e85325a881b0631

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

commit 9b6c8bb220629f002c212c9d0e85325a881b0631
Author: Duncan Coutts <[email protected]>
Date:   Mon May 10 03:13:28 2010 +0000

    Add plumbing in install code for global flags and target list

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

 cabal-install/Distribution/Client/Install.hs |   42 ++++++++++++++++++--------
 1 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/cabal-install/Distribution/Client/Install.hs 
b/cabal-install/Distribution/Client/Install.hs
index 5b73545..7b947da 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -133,6 +133,12 @@ import Distribution.Simple.BuildPaths ( exeExtension )
 -- * Top level user actions
 -- ------------------------------------------------------------
 
+-- | An installation target given by the user. At the moment this
+-- is just a named package, possibly with a version constraint.
+-- It should be generalised to handle other targets like http or dirs.
+--
+type InstallTarget = UnresolvedDependency
+
 -- | Installs the packages needed to satisfy a list of dependencies.
 --
 install, upgrade
@@ -145,12 +151,12 @@ install, upgrade
   -> ConfigFlags
   -> ConfigExFlags
   -> InstallFlags
-  -> [UnresolvedDependency]
+  -> [InstallTarget]
   -> IO ()
 install verbosity packageDB repos comp conf
-  globalFlags configFlags configExFlags installFlags deps =
+  globalFlags configFlags configExFlags installFlags targets =
 
-    installWithPlanner verbosity context planner
+    installWithPlanner verbosity context planner targets
 
   where
     context :: InstallContext
@@ -158,15 +164,19 @@ install verbosity packageDB repos comp conf
                globalFlags, configFlags, configExFlags, installFlags)
 
     planner :: Planner
-    planner | null deps = planLocalPackage verbosity
-                            comp configFlags configExFlags
-            | otherwise = planRepoPackages PreferLatestForSelected
-                            comp configFlags configExFlags installFlags deps
+    planner
+      | null targets = planLocalPackage verbosity
+                         comp configFlags configExFlags
+
+      | otherwise    = planRepoPackages PreferLatestForSelected
+                         comp globalFlags configFlags configExFlags
+                         installFlags targets
+
 
 upgrade verbosity packageDB repos comp conf
   globalFlags configFlags configExFlags installFlags deps =
 
-    installWithPlanner verbosity context planner
+    installWithPlanner verbosity context planner []
 
   where
     context :: InstallContext
@@ -177,7 +187,8 @@ upgrade verbosity packageDB repos comp conf
     planner | null deps = planUpgradePackages
                             comp configFlags configExFlags
             | otherwise = planRepoPackages PreferAllLatest
-                            comp configFlags configExFlags installFlags deps
+                            comp globalFlags configFlags configExFlags
+                            installFlags deps
 
 type Planner = PackageIndex InstalledPackage
             -> AvailablePackageDb
@@ -197,9 +208,11 @@ type InstallContext = ( PackageDBStack
 installWithPlanner :: Verbosity
                    -> InstallContext
                    -> Planner
+                   -> [UnresolvedDependency]
                    -> IO ()
 installWithPlanner verbosity
-  context@(packageDBs, repos, comp, conf, _, _, _, installFlags) planner = do
+  context@(packageDBs, repos, comp, conf, _, _, _, installFlags)
+  planner targets = do
 
   installed   <- getInstalledPackages verbosity comp packageDBs conf
   available   <- getAvailablePackages verbosity repos
@@ -213,7 +226,7 @@ installWithPlanner verbosity
 
   unless dryRun $
         performInstallations verbosity context installed installPlan
-    >>= postInstallActions verbosity context
+    >>= postInstallActions verbosity context targets
 
   where
     dryRun = fromFlag (installDryRun installFlags)
@@ -263,12 +276,14 @@ planLocalPackage verbosity comp configFlags configExFlags 
installed
 --
 planRepoPackages :: PackagesPreferenceDefault
                  -> Compiler
+                 -> GlobalFlags
                  -> ConfigFlags
                  -> ConfigExFlags
                  -> InstallFlags
                  -> [UnresolvedDependency]
                  -> Planner
-planRepoPackages defaultPref comp configFlags configExFlags installFlags
+planRepoPackages defaultPref comp
+  globalFlags configFlags configExFlags installFlags
   deps installed (AvailablePackageDb available availablePrefs) = do
 
   deps' <- IndexUtils.disambiguateDependencies available deps
@@ -412,11 +427,12 @@ printDryRun verbosity installed plan = case unfoldr next 
plan of
 --
 postInstallActions :: Verbosity
                    -> InstallContext
+                   -> [InstallTarget]
                    -> InstallPlan
                    -> IO ()
 postInstallActions verbosity
   (packageDBs, _, comp, conf, globalFlags, configFlags, _, installFlags)
-  installPlan = do
+  targets installPlan = do
 
   let buildReports = BuildReports.fromInstallPlan installPlan
   BuildReports.storeLocal (installSummaryFile installFlags) buildReports



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

Reply via email to