@@ -20,13 +20,12 @@ import Data.Foldable (traverse_)
20
20
import Data.List (isPrefixOf , isSuffixOf )
21
21
import Data.Maybe (mapMaybe )
22
22
import Data.Monoid (Sum (.. ))
23
+ import Distribution.Client.Config (defaultConfigFile , defaultCacheDir )
23
24
import Distribution.PackageDescription.Check (PackageCheck (.. ), checkPackage )
24
25
import Distribution.PackageDescription.PrettyPrint (showGenericPackageDescription )
25
26
import Distribution.PackageDescription.Quirks (patchQuirks )
26
27
import Distribution.Simple.Utils (fromUTF8BS , toUTF8BS )
27
28
import Numeric (showFFloat )
28
- import System.Directory (getAppUserDataDirectory )
29
- import System.Environment (lookupEnv )
30
29
import System.Exit (exitFailure )
31
30
import System.FilePath ((</>) )
32
31
@@ -63,22 +62,15 @@ import Data.TreeDiff.Pretty (ansiWlEditExprCompact)
63
62
parseIndex :: (Monoid a , NFData a ) => (FilePath -> Bool )
64
63
-> (FilePath -> B. ByteString -> IO a ) -> IO a
65
64
parseIndex predicate action = do
66
- cabalDir <- getAppUserDataDirectory " cabal"
67
- configPath <- getCabalConfigPath cabalDir
65
+ configPath <- defaultConfigFile
68
66
cfg <- B. readFile configPath
69
67
cfgFields <- either (fail . show ) pure $ Parsec. readFields cfg
68
+ repoCache <- case lookupInConfig " remote-repo-cache" cfgFields of
69
+ [] -> defaultCacheDir -- Default
70
+ (rrc : _) -> return rrc -- User-specified
70
71
let repos = reposFromConfig cfgFields
71
- repoCache = case lookupInConfig " remote-repo-cache" cfgFields of
72
- [] -> cabalDir </> " packages" -- Default
73
- (rrc : _) -> rrc -- User-specified
74
72
tarName repo = repoCache </> repo </> " 01-index.tar"
75
73
mconcat <$> traverse (parseIndex' predicate action . tarName) repos
76
- where
77
- getCabalConfigPath cabalDir = do
78
- mx <- lookupEnv " CABAL_CONFIG"
79
- case mx of
80
- Just x -> return x
81
- Nothing -> return (cabalDir </> " config" )
82
74
83
75
84
76
parseIndex'
0 commit comments