[commit: Cabal] master: Simplify install --only implementation (978fcec)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:52:31 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/978fcecefe654909f757a8ebd00cf7e54bf8ed23
>---------------------------------------------------------------
commit 978fcecefe654909f757a8ebd00cf7e54bf8ed23
Author: Duncan Coutts <duncan at haskell.org>
Date: Mon Apr 14 14:34:57 2008 +0000
Simplify install --only implementation
The install --only doesn't do any planning or build
reporting so make it completely separate so we do
not have to make up fake build plans or results.
>---------------------------------------------------------------
cabal-install/Hackage/Install.hs | 21 +++++----------------
cabal-install/Main.hs | 3 +++
2 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/cabal-install/Hackage/Install.hs b/cabal-install/Hackage/Install.hs
index 34bbfac..32c2a17 100644
--- a/cabal-install/Hackage/Install.hs
+++ b/cabal-install/Hackage/Install.hs
@@ -74,15 +74,14 @@ install :: Verbosity
-> IO ()
install verbosity packageDB repos comp conf configFlags installFlags deps = do
let dryRun = Cabal.fromFlag (installDryRun installFlags)
- onlyInstall = Cabal.fromFlag (installOnly installFlags)
-- ignore --root-cmd if --user.
rootCmd | Cabal.fromFlag (Cabal.configUserInstall configFlags) = Nothing
| otherwise = Cabal.flagToMaybe (installRootCmd installFlags)
buildResults <- if null deps
- then if onlyInstall -- used only internally, we assume there's no other interesting flag.
- then installLocalPackageOnly verbosity
- else installLocalPackage verbosity packageDB repos comp conf configFlags dryRun rootCmd
- else installRepoPackages verbosity packageDB repos comp conf configFlags dryRun rootCmd deps
+ then installLocalPackage verbosity
+ packageDB repos comp conf configFlags dryRun rootCmd
+ else installRepoPackages verbosity
+ packageDB repos comp conf configFlags dryRun rootCmd deps
case filter (buildFailed . snd) buildResults of
[] -> return () --TODO: return the build results
failed -> die $ "Error: some packages failed to install:\n"
@@ -119,7 +118,7 @@ installLocalPackage verbosity packageDB repos comp conf configFlags dryRun rootC
desc <- readPackageDescription verbosity cabalFile
installed <- getInstalledPackages verbosity comp packageDB conf
available <- fmap mconcat (mapM (IndexUtils.readRepoIndex verbosity) repos)
- --TODO:
+ --TODO: print the info again
-- details <- mapM Info.infoPkg (Info.flattenResolvedDependencies resolvedDeps)
-- info verbosity $ unlines (map (" "++) (concat details))
buildResults <- case resolveDependenciesLocal buildOS buildArch
@@ -136,16 +135,6 @@ installLocalPackage verbosity packageDB repos comp conf configFlags dryRun rootC
else do buildResult <- installUnpackedPkg verbosity configFlags Nothing rootCmd
return ((packageId (packageDescription desc), buildResult) : buildResults)
--- | Installs the package without also configuring and building. i.e. copy + register
-installLocalPackageOnly :: Verbosity -> IO [(PackageIdentifier, BuildResult)]
-installLocalPackageOnly verbosity =
- do cabalFile <- defaultPackageDesc verbosity
- desc <- readPackageDescription verbosity cabalFile
- buildResult <- onFailure InstallFailed $ do
- setupWrapper ["install"] Nothing
- return BuildOk
- return [(packageId (packageDescription desc), buildResult)]
-
installRepoPackages :: Verbosity
-> PackageDB
-> [Repo]
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index 17bf8bb..8f5ff5d 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -123,6 +123,9 @@ configureAction flags extraArgs = do
setupWrapper args Nothing
installAction :: (Cabal.ConfigFlags, InstallFlags) -> [String] -> IO ()
+installAction (_,iflags) _
+ | Cabal.fromFlag (installOnly iflags) = setupWrapper ["install"] Nothing
+
installAction (cflags,iflags) extraArgs = do
pkgs <- either die return (parsePackageArgs extraArgs)
configFile <- defaultConfigFile --FIXME
More information about the Cvs-libraries
mailing list