Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/130cccde742b1880ab5d426611fb207f548d301c >--------------------------------------------------------------- commit 130cccde742b1880ab5d426611fb207f548d301c Author: Paolo Losi <[email protected]> Date: Mon Feb 23 00:52:51 2009 +0000 Select Configuration file via env var CABAL_CONFIG. >--------------------------------------------------------------- cabal-install/Distribution/Client/Config.hs | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/cabal-install/Distribution/Client/Config.hs b/cabal-install/Distribution/Client/Config.hs index a47e93d..d621162 100644 --- a/cabal-install/Distribution/Client/Config.hs +++ b/cabal-install/Distribution/Client/Config.hs @@ -74,7 +74,7 @@ import Data.Maybe import Data.Monoid ( Monoid(..) ) import Control.Monad - ( when, foldM ) + ( when, foldM, liftM ) import qualified Data.Map as Map import qualified Distribution.Compat.ReadP as Parse ( option ) @@ -88,6 +88,8 @@ import Network.URI ( URI(..), URIAuth(..) ) import System.FilePath ( (</>), takeDirectory ) +import System.Environment + ( getEnvironment ) import System.IO.Error ( isDoesNotExistError ) @@ -228,11 +230,20 @@ defaultRemoteRepo = RemoteRepo name uri loadConfig :: Verbosity -> Flag FilePath -> Flag Bool -> IO SavedConfig loadConfig verbosity configFileFlag userInstallFlag = addBaseConf $ do - configFile <- maybe defaultConfigFile return (flagToMaybe configFileFlag) + let sources = [ + ("commandline option", return . flagToMaybe $ configFileFlag), + ("env var CABAL_CONFIG", lookup "CABAL_CONFIG" `liftM` getEnvironment), + ("default config file", Just `liftM` defaultConfigFile) ] + getSource [] = error "no config file path candidate found." + getSource ((msg,action): xs) = + action >>= maybe (getSource xs) (return . (,) msg) + + (source, configFile) <- getSource sources minp <- readConfigFile mempty configFile case minp of Nothing -> do + notice verbosity $ "Config file path source is " ++ source ++ "." notice verbosity $ "Config file " ++ configFile ++ " not found." notice verbosity $ "Writing default configuration to " ++ configFile commentConf <- commentSavedConfig _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
