diff --git a/cabal-install/Distribution/Client/BuildReports/Storage.hs b/cabal-install/Distribution/Client/BuildReports/Storage.hs index be8464b0988918f170a598fd0ac99e4c6dcd9a00..adbdb045b53d5d508d0bc1959dd060277a283f15 100644 --- a/cabal-install/Distribution/Client/BuildReports/Storage.hs +++ b/cabal-install/Distribution/Client/BuildReports/Storage.hs @@ -80,7 +80,7 @@ storeAnonymous reports = sequence_ onlyRemote rs = [ (report, repo, remoteRepo) | (report, Just repo) <- rs - , Just remoteRepo <- [repoRemote' repo] + , Just remoteRepo <- [maybeRepoRemote repo] ] storeLocal :: CompilerInfo -> [PathTemplate] -> [(BuildReport, Maybe Repo)] diff --git a/cabal-install/Distribution/Client/IndexUtils.hs b/cabal-install/Distribution/Client/IndexUtils.hs index f5b00d004c7680e6ba94a21cffa7d44cfdb6c56a..2c8c7e67273f9088d29b5af19a1cf07c40a0d443 100644 --- a/cabal-install/Distribution/Client/IndexUtils.hs +++ b/cabal-install/Distribution/Client/IndexUtils.hs @@ -78,7 +78,8 @@ import Distribution.Client.Utils ( byteStringToFilePath import Distribution.Compat.Exception (catchIO) import Distribution.Client.Compat.Time (getFileAge, getModTime) import System.Directory (doesFileExist, doesDirectoryExist) -import System.FilePath ((</>), takeExtension, splitDirectories, normalise) +import System.FilePath + ( (</>), takeExtension, replaceExtension, splitDirectories, normalise ) import System.FilePath.Posix as FilePath.Posix ( takeFileName ) import System.IO @@ -153,8 +154,8 @@ readRepoIndex :: Verbosity -> Repo -> ReadPackageIndexMode readRepoIndex verbosity repo mode = handleNotFound $ do warnIfIndexIsOld =<< getIndexFileAge repo - updateRepoIndexCache verbosity (GlobalIndex repo) - readPackageIndexCacheFile mkAvailablePackage (GlobalIndex repo) mode + updateRepoIndexCache verbosity (RepoIndex repo) + readPackageIndexCacheFile mkAvailablePackage (RepoIndex repo) mode where mkAvailablePackage pkgEntry = @@ -346,19 +347,20 @@ lazySequence (x:xs) = unsafeInterleaveIO $ do -- | Which index do we mean? data Index = - -- | The global index for the specified repository - GlobalIndex Repo + -- | The main index for the specified repository + RepoIndex Repo - -- | A (sandbox) local repository - | LocalIndex { localIndexFile :: FilePath, localCacheFile :: FilePath } + -- | A sandbox-local repository + -- Argument is the location of the index file + | SandboxIndex FilePath indexFile :: Index -> FilePath -indexFile (GlobalIndex repo) = repoLocalDir repo </> "00-index.tar" -indexFile (LocalIndex{..}) = localIndexFile +indexFile (RepoIndex repo) = repoLocalDir repo </> "00-index.tar" +indexFile (SandboxIndex index) = index cacheFile :: Index -> FilePath -cacheFile (GlobalIndex repo) = repoLocalDir repo </> "00-index.cache" -cacheFile (LocalIndex{..}) = localCacheFile +cacheFile (RepoIndex repo) = repoLocalDir repo </> "00-index.cache" +cacheFile (SandboxIndex index) = index `replaceExtension` "cache" updatePackageIndexCacheFile :: Verbosity -> Index -> IO () updatePackageIndexCacheFile verbosity index = do diff --git a/cabal-install/Distribution/Client/Install.hs b/cabal-install/Distribution/Client/Install.hs index 931970dbeca6ef4a9acbde6a470d1d9c430ae15f..67b1fb5621a18a891215fdf64a4e5ca6ed69c521 100644 --- a/cabal-install/Distribution/Client/Install.hs +++ b/cabal-install/Distribution/Client/Install.hs @@ -840,7 +840,7 @@ storeDetailedBuildReports verbosity logsDir reports = sequence_ writeFile reportFile (show (BuildReports.show report, buildLog)) | (report, Just repo) <- reports - , Just remoteRepo <- [repoRemote' repo] + , Just remoteRepo <- [maybeRepoRemote repo] , isLikelyToHaveLogFile (BuildReports.installOutcome report) ] where diff --git a/cabal-install/Distribution/Client/Sandbox/Index.hs b/cabal-install/Distribution/Client/Sandbox/Index.hs index 05f64039de77fc09f75e57d7258fa6678c57eb7f..d794cf3b1d5e9c0d3bb8e823ccd1fd4020227468 100644 --- a/cabal-install/Distribution/Client/Sandbox/Index.hs +++ b/cabal-install/Distribution/Client/Sandbox/Index.hs @@ -48,8 +48,7 @@ import Data.Either (partitionEithers) import System.Directory ( createDirectoryIfMissing, doesDirectoryExist, doesFileExist, renameFile, canonicalizePath) -import System.FilePath ( (</>), (<.>), takeDirectory, takeExtension - , replaceExtension ) +import System.FilePath ( (</>), (<.>), takeDirectory, takeExtension ) import System.IO ( IOMode(..), SeekMode(..) , hSeek, withBinaryFile ) @@ -156,10 +155,7 @@ addBuildTreeRefs verbosity path l' refType = do hSeek h AbsoluteSeek (fromIntegral offset) BS.hPut h (Tar.write entries) debug verbosity $ "Successfully appended to '" ++ path ++ "'" - updatePackageIndexCacheFile verbosity $ LocalIndex { - localIndexFile = path - , localCacheFile = path `replaceExtension` "cache" - } + updatePackageIndexCacheFile verbosity $ SandboxIndex path data DeleteSourceError = ErrNonregisteredSource { nrPath :: FilePath } | ErrNonexistentSource { nePath :: FilePath } deriving Show @@ -194,10 +190,7 @@ removeBuildTreeRefs verbosity indexPath l = do ++ "' to '" ++ indexPath ++ "'" unless (null removedRefs) $ - updatePackageIndexCacheFile verbosity LocalIndex { - localIndexFile = indexPath - , localCacheFile = indexPath `replaceExtension` "cache" - } + updatePackageIndexCacheFile verbosity $ SandboxIndex indexPath let results = fmap Right removedRefs ++ fmap Left failures diff --git a/cabal-install/Distribution/Client/Types.hs b/cabal-install/Distribution/Client/Types.hs index 916a8c5a7cc4feacb1fbfc7bf0634b8c13252adb..8e0d93e78f6765276d83c939e40ebf0da760eb16 100644 --- a/cabal-install/Distribution/Client/Types.hs +++ b/cabal-install/Distribution/Client/Types.hs @@ -255,9 +255,9 @@ data Repo = deriving instance Show Repo -- | Check if this is a remote repo -repoRemote' :: Repo -> Maybe RemoteRepo -repoRemote' (RepoLocal _localDir ) = Nothing -repoRemote' (RepoRemote r _localDir ) = Just r +maybeRepoRemote :: Repo -> Maybe RemoteRepo +maybeRepoRemote (RepoLocal _localDir ) = Nothing +maybeRepoRemote (RepoRemote r _localDir ) = Just r -- ------------------------------------------------------------ -- * Build results diff --git a/cabal-install/Distribution/Client/Update.hs b/cabal-install/Distribution/Client/Update.hs index 7157d0c75cdc3b19102acee02e2f73566d95a45a..0c3a4a3bb23c5a88808e9c5d4da139033c0d0ec0 100644 --- a/cabal-install/Distribution/Client/Update.hs +++ b/cabal-install/Distribution/Client/Update.hs @@ -16,7 +16,7 @@ module Distribution.Client.Update ) where import Distribution.Client.Types - ( Repo(..), RemoteRepo(..), repoRemote' ) + ( Repo(..), RemoteRepo(..), maybeRepoRemote ) import Distribution.Client.HttpUtils ( DownloadResult(..), HttpTransport(..) ) import Distribution.Client.FetchUtils @@ -43,7 +43,7 @@ update _ verbosity [] = ++ "you would have one specified in the config file." update transport verbosity repos = do jobCtrl <- newParallelJobControl - let remoteRepos = catMaybes (map repoRemote' repos) + let remoteRepos = catMaybes (map maybeRepoRemote repos) case remoteRepos of [] -> return () [remoteRepo] -> @@ -65,4 +65,4 @@ updateRepo transport verbosity repo = case repo of FileDownloaded indexPath -> do writeFileAtomic (dropExtension indexPath) . maybeDecompress =<< BS.readFile indexPath - updateRepoIndexCache verbosity (GlobalIndex repo) + updateRepoIndexCache verbosity (RepoIndex repo) diff --git a/cabal-install/Distribution/Client/Upload.hs b/cabal-install/Distribution/Client/Upload.hs index 3167887526be1fa9687563c6bba83b96c6653035..d37dc594b29376e99b164092bd2361363390a3b3 100644 --- a/cabal-install/Distribution/Client/Upload.hs +++ b/cabal-install/Distribution/Client/Upload.hs @@ -4,7 +4,7 @@ module Distribution.Client.Upload (check, upload, uploadDoc, report) where import Distribution.Client.Types ( Username(..), Password(..) - , Repo(..), RemoteRepo(..), repoRemote' ) + , Repo(..), RemoteRepo(..), maybeRepoRemote ) import Distribution.Client.HttpUtils ( HttpTransport(..), remoteRepoTryUpgradeToHttps ) @@ -38,7 +38,7 @@ upload :: HttpTransport -> Verbosity -> [Repo] -> IO () upload transport verbosity repos mUsername mPassword paths = do targetRepo <- - case [ remoteRepo | Just remoteRepo <- map repoRemote' repos ] of + case [ remoteRepo | Just remoteRepo <- map maybeRepoRemote repos ] of [] -> die "Cannot upload. No remote repositories are configured." rs -> remoteRepoTryUpgradeToHttps transport (last rs) let targetRepoURI = remoteRepoURI targetRepo @@ -59,7 +59,7 @@ uploadDoc :: HttpTransport -> Verbosity -> [Repo] -> IO () uploadDoc transport verbosity repos mUsername mPassword path = do targetRepo <- - case [ remoteRepo | Just remoteRepo <- map repoRemote' repos ] of + case [ remoteRepo | Just remoteRepo <- map maybeRepoRemote repos ] of [] -> die $ "Cannot upload. No remote repositories are configured." rs -> remoteRepoTryUpgradeToHttps transport (last rs) let targetRepoURI = remoteRepoURI targetRepo @@ -113,7 +113,7 @@ report verbosity repos mUsername mPassword = do Username username <- maybe promptUsername return mUsername Password password <- maybe promptPassword return mPassword let auth = (username,password) - let remoteRepos = catMaybes (map repoRemote' repos) + let remoteRepos = catMaybes (map maybeRepoRemote repos) forM_ remoteRepos $ \remoteRepo -> do dotCabal <- defaultCabalDir let srcDir = dotCabal </> "reports" </> remoteRepoName remoteRepo