Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/53fc7ec42c2218452678bad015365e4a30b5f35d >--------------------------------------------------------------- commit 53fc7ec42c2218452678bad015365e4a30b5f35d Author: bjorn <[email protected]> Date: Sun Oct 7 12:13:50 2007 +0000 Set prefix to .cabal by default. >--------------------------------------------------------------- .../src/Network/Hackage/CabalInstall/Clean.hs | 5 +-- .../src/Network/Hackage/CabalInstall/Config.hs | 25 ++++++++----------- .../src/Network/Hackage/CabalInstall/Fetch.hs | 2 +- .../src/Network/Hackage/CabalInstall/Setup.hs | 4 +- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Clean.hs b/cabal-install/src/Network/Hackage/CabalInstall/Clean.hs index d017544..58cd960 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Clean.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Clean.hs @@ -14,13 +14,12 @@ module Network.Hackage.CabalInstall.Clean ( clean ) where -import Network.Hackage.CabalInstall.Types (ConfigFlags) -import Network.Hackage.CabalInstall.Config (packagesDirectory) +import Network.Hackage.CabalInstall.Types (ConfigFlags(..)) import System.Directory (removeDirectoryRecursive) -- | 'clean' removes all downloaded packages from the {config-dir}\/packages\/ directory. clean :: ConfigFlags -> IO () clean cfg - = removeDirectoryRecursive (packagesDirectory cfg) + = removeDirectoryRecursive (configCacheDir cfg) diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Config.hs b/cabal-install/src/Network/Hackage/CabalInstall/Config.hs index 6cb25d7..b7dc943 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Config.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Config.hs @@ -11,8 +11,7 @@ -- Utilities for handling saved state such as known packages, known servers and downloaded packages. ----------------------------------------------------------------------------- module Network.Hackage.CabalInstall.Config - ( packagesDirectory - , repoCacheDir + ( repoCacheDir , packageFile , packageDir , getKnownPackages @@ -46,7 +45,7 @@ import Distribution.PackageDescription (GenericPackageDescription(..) import Distribution.ParseUtils (FieldDescr, simpleField, listField, liftField, field) import Distribution.Simple.Compiler (Compiler) import qualified Distribution.Simple.Configure as Configure (configCompiler) -import Distribution.Simple.InstallDirs (InstallDirTemplates(..), PathTemplate, defaultInstallDirs) +import Distribution.Simple.InstallDirs (InstallDirTemplates(..), PathTemplate, toPathTemplate, defaultInstallDirs) import Distribution.Simple.Program (ProgramConfiguration, defaultProgramConfiguration) import Distribution.Version (Dependency, showVersion) import Distribution.Verbosity (Verbosity, normal) @@ -56,13 +55,9 @@ import Network.Hackage.CabalInstall.Types (ConfigFlags (..), PkgInfo (..), Repo( import Network.Hackage.CabalInstall.Utils --- | Full path to the packages directory. -packagesDirectory :: ConfigFlags -> FilePath -packagesDirectory cfg = configCacheDir cfg </> "packages" - -- | Full path to the local cache directory for a repository. repoCacheDir :: ConfigFlags -> Repo -> FilePath -repoCacheDir cfg repo = packagesDirectory cfg </> repoName repo +repoCacheDir cfg repo = configCacheDir cfg </> repoName repo -- |Generate the full path to the locally cached copy of -- the tarball for a given @PackageIdentifer@. @@ -130,26 +125,28 @@ findCompiler cfg = Configure.configCompiler -- * Default config -- -defaultConfigDir :: IO FilePath -defaultConfigDir = getAppUserDataDirectory "cabal" +defaultCabalDir :: IO FilePath +defaultCabalDir = getAppUserDataDirectory "cabal" defaultConfigFile :: IO FilePath -defaultConfigFile = do dir <- defaultConfigDir +defaultConfigFile = do dir <- defaultCabalDir return $ dir </> "config" defaultCacheDir :: IO FilePath -defaultCacheDir = defaultConfigDir +defaultCacheDir = do dir <- defaultCabalDir + return $ dir </> "packages" defaultCompiler :: CompilerFlavor defaultCompiler = fromMaybe GHC defaultCompilerFlavor defaultConfigFlags :: IO ConfigFlags defaultConfigFlags = - do installDirs <- defaultInstallDirs defaultCompiler True + do defaultPrefix <- defaultCabalDir + installDirs <- defaultInstallDirs defaultCompiler True cacheDir <- defaultCacheDir return $ ConfigFlags { configCompiler = defaultCompiler - , configInstallDirs = installDirs + , configInstallDirs = installDirs { prefixDirTemplate = toPathTemplate defaultPrefix } , configCacheDir = cacheDir , configRepos = [Repo "hackage.haskell.org" "http://hackage.haskell.org/packages/archive"] , configVerbose = normal diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs b/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs index bf511d5..27ae78d 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs @@ -32,7 +32,7 @@ import Text.Printf (printf) import System.Directory (doesFileExist, createDirectoryIfMissing) import Network.Hackage.CabalInstall.Types (ConfigFlags (..), UnresolvedDependency (..), Repo(..)) -import Network.Hackage.CabalInstall.Config (packagesDirectory, repoCacheDir, packageFile, packageDir, pkgURL, message, findCompiler) +import Network.Hackage.CabalInstall.Config (repoCacheDir, packageFile, packageDir, pkgURL, message, findCompiler) import Network.Hackage.CabalInstall.Dependency (filterFetchables, resolveDependencies) import Distribution.Package (PackageIdentifier(..), showPackageId) diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Setup.hs b/cabal-install/src/Network/Hackage/CabalInstall/Setup.hs index aa92156..0872dde 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Setup.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Setup.hs @@ -19,7 +19,7 @@ module Network.Hackage.CabalInstall.Setup import Control.Monad (when) import Distribution.ParseUtils (parseDependency) import Distribution.Compiler (CompilerFlavor(..)) -import Distribution.Simple.InstallDirs (InstallDirTemplates(..)) +import Distribution.Simple.InstallDirs (InstallDirTemplates(..), toPathTemplate) import Distribution.Verbosity import Data.List (find) import System.Console.GetOpt (ArgDescr (..), ArgOrder (..), OptDescr (..), usageInfo, getOpt') @@ -97,7 +97,7 @@ configFromOptions = foldr f OptUserInstall u -> cfg { configUserInstall = u } OptHelp -> error "Got to setFlagsFromOptions OptHelp" OptVerbose v -> cfg { configVerbose = v } - where lib g d = cfg { configInstallDirs = g (configInstallDirs cfg) (read $ show d) } -- FIXME: Read PathTemplate seems to require quotes + where lib g d = cfg { configInstallDirs = g (configInstallDirs cfg) (toPathTemplate d) } data Cmd = Cmd { cmdName :: String, _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
