[commit: Cabal] master: Set prefix to .cabal by default. (53fc7ec)
Ian Lynagh
igloo at earth.li
Fri Jun 24 01:46:25 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/53fc7ec42c2218452678bad015365e4a30b5f35d
>---------------------------------------------------------------
commit 53fc7ec42c2218452678bad015365e4a30b5f35d
Author: bjorn <bjorn at bringert.net>
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 at .
@@ -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,
More information about the Cvs-libraries
mailing list