From c58432707f97c716647ecf2cdd8dc2366f5704fe Mon Sep 17 00:00:00 2001 From: Gershom Bazerman Date: Tue, 22 Feb 2022 13:49:56 -0500 Subject: [PATCH] act on reviewer comments --- cabal-install/src/Distribution/Client/CmdUpdate.hs | 3 ++- cabal-install/src/Distribution/Client/IndexUtils.hs | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cabal-install/src/Distribution/Client/CmdUpdate.hs b/cabal-install/src/Distribution/Client/CmdUpdate.hs index 91a0d6fd6ca..693ae3cba9c 100644 --- a/cabal-install/src/Distribution/Client/CmdUpdate.hs +++ b/cabal-install/src/Distribution/Client/CmdUpdate.hs @@ -211,7 +211,8 @@ updateRepo verbosity _updateFlags repoCtxt (repo, indexState) = do case updated of Sec.NoUpdates -> do now <- getCurrentTime - setModificationTime (indexBaseName repo <.> "tar") now `catch` (\(e :: SomeException) -> warn verbosity $ "Could not set modification time of index tarball -- " ++ show e) + setModificationTime (indexBaseName repo <.> "tar") now `catchIO` + (\e -> warn verbosity $ "Could not set modification time of index tarball -- " ++ displayException e) noticeNoWrap verbosity $ "Package list of " ++ prettyShow rname ++ " is up to date at index-state " ++ prettyShow (IndexStateTime current_ts) diff --git a/cabal-install/src/Distribution/Client/IndexUtils.hs b/cabal-install/src/Distribution/Client/IndexUtils.hs index 4a734dabd67..48277395870 100644 --- a/cabal-install/src/Distribution/Client/IndexUtils.hs +++ b/cabal-install/src/Distribution/Client/IndexUtils.hs @@ -247,7 +247,7 @@ getSourcePackagesAtIndexState verbosity repoCtxt mb_idxState mb_activeRepos = do " as explicitly requested (via command line / project configuration)" return idxState Nothing -> do - mb_idxState' <- readIndexTimestamp (RepoIndex repoCtxt r) + mb_idxState' <- readIndexTimestamp verbosity (RepoIndex repoCtxt r) case mb_idxState' of Nothing -> do info verbosity "Using most recent state (could not read timestamp file)" @@ -366,7 +366,8 @@ readRepoIndex verbosity repoCtxt repo idxState = handleNotFound $ do when (isRepoRemote repo) $ warnIfIndexIsOld =<< getIndexFileAge repo -- note that if this step fails due to a bad repocache, the the procedure can still succeed by reading from the existing cache, which is updated regardless. - updateRepoIndexCache verbosity (RepoIndex repoCtxt repo) `catch` (\(e :: SomeException) -> warn verbosity $ "unable to update the repo index cache -- " ++ displayException e) + updateRepoIndexCache verbosity (RepoIndex repoCtxt repo) `catchIO` + (\e -> warn verbosity $ "unable to update the repo index cache -- " ++ displayException e) readPackageIndexCacheFile verbosity mkAvailablePackage (RepoIndex repoCtxt repo) idxState @@ -1055,7 +1056,7 @@ writeIndexTimestamp index st -- timestamp you would use to revert to this version currentIndexTimestamp :: Verbosity -> RepoContext -> Repo -> IO Timestamp currentIndexTimestamp verbosity repoCtxt r = do - mb_is <- readIndexTimestamp (RepoIndex repoCtxt r) + mb_is <- readIndexTimestamp verbosity (RepoIndex repoCtxt r) case mb_is of Just (IndexStateTime ts) -> return ts _ -> do @@ -1063,14 +1064,14 @@ currentIndexTimestamp verbosity repoCtxt r = do return (isiHeadTime isi) -- | Read the 'IndexState' from the filesystem -readIndexTimestamp :: Index -> IO (Maybe RepoIndexState) -readIndexTimestamp index +readIndexTimestamp :: Verbosity -> Index -> IO (Maybe RepoIndexState) +readIndexTimestamp verbosity index = fmap simpleParsec (readFile (timestampFile index)) `catchIO` \e -> if isDoesNotExistError e then return Nothing else do - putStrLn $ "Warning: could not read current index timestamp: " ++ show e + warn verbosity $ "Warning: could not read current index timestamp: " ++ displayException e return Nothing -- | Optimise sharing of equal values inside 'Cache'