[commit: Cabal] master: Fix savedConfigToConfigFlags so the command line overrides the config (51c9ee0)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:51:16 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/51c9ee0f4e026b1ebb2e00db0560841bb095bf84
>---------------------------------------------------------------
commit 51c9ee0f4e026b1ebb2e00db0560841bb095bf84
Author: Duncan Coutts <duncan at haskell.org>
Date: Mon Mar 3 14:00:07 2008 +0000
Fix savedConfigToConfigFlags so the command line overrides the config
"cabal configure --global" was incorrectly passing the user prefix to setup.
>---------------------------------------------------------------
cabal-install/Hackage/Config.hs | 27 +++++----------------------
cabal-install/Main.hs | 15 +++++++--------
2 files changed, 12 insertions(+), 30 deletions(-)
diff --git a/cabal-install/Hackage/Config.hs b/cabal-install/Hackage/Config.hs
index a9c624f..0017d4f 100644
--- a/cabal-install/Hackage/Config.hs
+++ b/cabal-install/Hackage/Config.hs
@@ -14,7 +14,6 @@ module Hackage.Config
( SavedConfig(..)
, savedConfigToConfigFlags
, configRepos
- , configPackageDB
, defaultConfigFile
, loadConfig
, showConfig
@@ -33,7 +32,6 @@ import Distribution.Compat.ReadP (ReadP, char, munch1, readS_to_P)
import Distribution.Compiler (CompilerFlavor(..), defaultCompilerFlavor)
import Distribution.PackageDescription.Parse (ParseResult(..))
import Distribution.ParseUtils (FieldDescr(..), simpleField, listField, liftField, field)
-import Distribution.Simple.Compiler (PackageDB(..))
import Distribution.Simple.InstallDirs (InstallDirs(..), PathTemplate, toPathTemplate)
import Distribution.Simple.Setup (Flag(..), toFlag, fromFlag, fromFlagOrDefault)
import qualified Distribution.Simple.Setup as Cabal
@@ -71,14 +69,8 @@ configRepos config =
in Repo remote cacheDir
| remote <- configRemoteRepos config ]
-configPackageDB :: SavedConfig -> Flag PackageDB
-configPackageDB config = case configUserInstall config of
- NoFlag -> NoFlag
- Flag True -> Flag UserPackageDB
- Flag False -> Flag GlobalPackageDB
-
-savedConfigToConfigFlags :: Flag PackageDB -> SavedConfig -> Cabal.ConfigFlags
-savedConfigToConfigFlags packageDB config = mempty {
+savedConfigToConfigFlags :: Flag Bool -> SavedConfig -> Cabal.ConfigFlags
+savedConfigToConfigFlags userInstallFlag config = mempty {
Cabal.configHcFlavor = configCompiler config,
Cabal.configHcPath = configCompilerPath config,
Cabal.configHcPkg = configHcPkgPath config,
@@ -86,20 +78,11 @@ savedConfigToConfigFlags packageDB config = mempty {
Cabal.configInstallDirs = if userInstall
then configUserInstallDirs config
else configGlobalInstallDirs config,
- Cabal.configVerbose = configVerbose config,
-
- -- FIXME: Urk, all this complex stuff is a result of the mismatch between
- -- userInstall :: Bool and packageDB :: PackageDB. We should use one or
- -- the other consistently.
- Cabal.configPackageDB = if userInstall
- then toFlag UserPackageDB
- else toFlag GlobalPackageDB
+ Cabal.configVerbose = configVerbose config
}
where userInstall :: Bool
- userInstall = fromFlag $ fmap (\p -> case p of
- UserPackageDB -> True
- _ -> False) packageDB
- `mappend` configUserInstall config
+ userInstall = fromFlag $ configUserInstall config
+ `mappend` userInstallFlag
--
-- * Default config
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index a5656b9..b1c20c9 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -14,7 +14,7 @@
module Main where
import Hackage.Setup
-import Distribution.Simple.Setup (Flag, fromFlag, fromFlagOrDefault,
+import Distribution.Simple.Setup (Flag(..), fromFlag, fromFlagOrDefault,
flagToMaybe)
import qualified Distribution.Simple.Setup as Cabal
import Distribution.Simple.Program (defaultProgramConfiguration)
@@ -23,8 +23,7 @@ import Distribution.Simple.SetupWrapper (setupWrapper)
import Distribution.Simple.Configure (configCompilerAux)
import Distribution.Simple.Utils (cabalVersion, die)
import Hackage.Config (SavedConfig(..), savedConfigToConfigFlags,
- defaultConfigFile, loadConfig, configRepos,
- configPackageDB)
+ defaultConfigFile, loadConfig, configRepos)
import Hackage.List (list)
import Hackage.Install (install)
import Hackage.Update (update)
@@ -111,7 +110,7 @@ configureAction flags extraArgs = do
configFile <- defaultConfigFile --FIXME
let verbosity = fromFlagOrDefault normal (Cabal.configVerbose flags)
config <- loadConfig verbosity configFile
- let flags' = savedConfigToConfigFlags (Cabal.configPackageDB flags) config
+ let flags' = savedConfigToConfigFlags (Cabal.configUserInstall flags) config
`mappend` flags
args = commandName configureCommand
: commandShowOptions configureCommand flags' ++ extraArgs
@@ -123,7 +122,7 @@ installAction (cflags,iflags) extraArgs = do
configFile <- defaultConfigFile --FIXME
let verbosity = fromFlagOrDefault normal (Cabal.configVerbose cflags)
config <- loadConfig verbosity configFile
- let cflags' = savedConfigToConfigFlags (Cabal.configPackageDB cflags) config
+ let cflags' = savedConfigToConfigFlags (Cabal.configUserInstall cflags) config
`mappend` cflags
(comp, conf) <- configCompilerAux cflags'
install verbosity
@@ -135,7 +134,7 @@ listAction listFlags extraArgs = do
configFile <- defaultConfigFile --FIXME
let verbosity = fromFlag (listVerbosity listFlags)
config <- loadConfig verbosity configFile
- let flags = savedConfigToConfigFlags (configPackageDB config) config
+ let flags = savedConfigToConfigFlags NoFlag config
(comp, conf) <- configCompilerAux flags
list verbosity
(fromFlag $ Cabal.configPackageDB flags)
@@ -157,7 +156,7 @@ upgradeAction (cflags,iflags) _extraArgs = do
configFile <- defaultConfigFile --FIXME
let verbosity = fromFlagOrDefault normal (Cabal.configVerbose cflags)
config <- loadConfig verbosity configFile
- let cflags' = savedConfigToConfigFlags (Cabal.configPackageDB cflags) config
+ let cflags' = savedConfigToConfigFlags (Cabal.configUserInstall cflags) config
`mappend` cflags
(comp, conf) <- configCompilerAux cflags'
upgrade verbosity
@@ -170,7 +169,7 @@ fetchAction verbosityFlag extraArgs = do
configFile <- defaultConfigFile --FIXME
let verbosity = fromFlag verbosityFlag
config <- loadConfig verbosity configFile
- let flags = savedConfigToConfigFlags (configPackageDB config) config
+ let flags = savedConfigToConfigFlags NoFlag config
(comp, conf) <- configCompilerAux flags
fetch verbosity
(fromFlag $ Cabal.configPackageDB flags) (configRepos config)
More information about the Cvs-libraries
mailing list