Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce verbosity by hiding delete errors #219

Merged
merged 1 commit into from
Mar 19, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 30 additions & 17 deletions src/Caches/Local/Downloading.hs
Original file line number Diff line number Diff line change
@@ -1,38 +1,44 @@
module Caches.Local.Downloading where

import Configuration ( carthageBuildDirectory
, carthageArtifactsBuildDirectoryForPlatform
)
import Configuration ( carthageBuildDirectory
, carthageArtifactsBuildDirectoryForPlatform
)
import Control.Exception ( catch
, throw
, displayException
)
import Control.Monad.Except
import Control.Monad.Trans.Resource ( runResourceT )
import Control.Monad.Trans.Resource ( runResourceT )
import qualified Data.ByteString.Lazy as LBS
import Data.Carthage.TargetPlatform
import qualified Data.Conduit as C
( runConduit
, (.|)
)
( runConduit
, (.|)
)
import qualified Data.Conduit.Binary as C
( sinkLbs
, sourceFile
)
( sinkLbs
, sourceFile
)
import Data.Romefile
import Data.UUID as UUID
( UUID )
( UUID )
import System.Directory
import System.FilePath
import Types hiding ( version )
import Types hiding ( version )

import Caches.Common
import Control.Monad.Reader ( ReaderT
, ask
)
import Control.Monad.Reader ( ReaderT
, ask
)
import Data.Either
import Data.Monoid ( (<>) )
import Data.Monoid ( (<>) )
import System.IO.Error ( isDoesNotExistError )
import Utils
import Xcode.DWARF




-- | Retrieves a Framework from a local cache
getFrameworkFromLocalCache
:: MonadIO m
Expand Down Expand Up @@ -139,7 +145,14 @@ getAndUnzipBcsymbolmapFromLocalCache lCacheDir reverseRomeMap fVersion@(Framewor
let symbolmapName = fwn <> "." <> bcsymbolmapNameFrom dwarfUUID
binary <- getBcsymbolmapFromLocalCache lCacheDir cachePrefix reverseRomeMap fVersion platform dwarfUUID
sayFunc $ "Found " <> symbolmapName <> " in local cache at: " <> frameworkLocalCachePath prefix
deleteFile (bcsymbolmapPath dwarfUUID) verbose
liftIO
$ deleteFile (bcsymbolmapPath dwarfUUID) verbose
`catch` (\e ->
let sayFuncIO = if verbose then sayLnWithTime else sayLn
in if isDoesNotExistError e
then when verbose $ sayFuncIO ("Error :" <> displayException e)
else throw e
)
unzipBinary binary symbolmapName (bcsymbolmapZipName dwarfUUID) verbose
where
frameworkLocalCachePath cPrefix = lCacheDir </> cPrefix </> remoteFrameworkUploadPath
Expand Down
51 changes: 30 additions & 21 deletions src/Caches/S3/Downloading.hs
Original file line number Diff line number Diff line change
@@ -1,36 +1,41 @@
module Caches.S3.Downloading where

import Caches.Common
import Configuration ( carthageArtifactsBuildDirectoryForPlatform )
import Control.Exception ( try )
import Control.Lens ( view )
import Configuration ( carthageArtifactsBuildDirectoryForPlatform )
import Control.Exception ( try
, catch
, throw
, displayException
)
import Control.Lens ( view )
import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader ( ReaderT
, ask
, runReaderT
, withReaderT
)
import Control.Monad.Reader ( ReaderT
, ask
, runReaderT
, withReaderT
)
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import Data.Carthage.TargetPlatform
import qualified Data.Conduit as C
( ConduitT
, await
, yield
, (.|)
)
( ConduitT
, await
, yield
, (.|)
)
import qualified Data.Conduit.Binary as C
( sinkLbs )
import Data.Either ( lefts )
import Data.Maybe ( fromMaybe )
import Data.Monoid ( (<>) )
import Data.Romefile ( Framework(..) )
( sinkLbs )
import Data.Either ( lefts )
import Data.Maybe ( fromMaybe )
import Data.Monoid ( (<>) )
import Data.Romefile ( Framework(..) )
import qualified Data.Text as T
import qualified Network.AWS as AWS
import qualified Network.AWS.S3 as S3
import System.FilePath ( (</>) )
import Types hiding ( version )
import System.FilePath ( (</>) )
import System.IO.Error ( isDoesNotExistError )
import Types hiding ( version )
import Utils
import Xcode.DWARF

Expand Down Expand Up @@ -150,9 +155,13 @@ getAndUnzipBcsymbolmapFromS3
getAndUnzipBcsymbolmapFromS3 s3BucketName reverseRomeMap fVersion@(FrameworkVersion f@(Framework fwn _ fwps) version) platform dwarfUUID
= when (platform `elem` fwps) $ do
(_, _, verbose) <- ask
let sayFunc = if verbose then sayLnWithTime else sayLn
let symbolmapName = fwn <> "." <> bcsymbolmapNameFrom dwarfUUID
binary <- getBcsymbolmapFromS3 s3BucketName reverseRomeMap fVersion platform dwarfUUID
deleteFile (bcsymbolmapPath dwarfUUID) verbose
liftIO
$ deleteFile (bcsymbolmapPath dwarfUUID) verbose
`catch` (\e -> if isDoesNotExistError e then when verbose $ sayFunc ("Error :" <> displayException e) else throw e
)
unzipBinary binary symbolmapName (bcsymbolmapZipName dwarfUUID) verbose
where
platformBuildDirectory = carthageArtifactsBuildDirectoryForPlatform platform f
Expand Down
36 changes: 21 additions & 15 deletions src/Engine/Downloading.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,26 @@
module Engine.Downloading where

import Caches.Common
import Configuration ( carthageArtifactsBuildDirectoryForPlatform )
import Control.Exception ( try )
import Configuration ( carthageArtifactsBuildDirectoryForPlatform )
import Control.Exception ( try, catch, throw, displayException)
import Control.Monad
import Control.Monad.Except
import Control.Monad.Reader ( ReaderT
, ask
, runReaderT
, withReaderT
)
import Control.Monad.Reader ( ReaderT
, ask
, runReaderT
, withReaderT
)
import qualified Data.ByteString.Lazy as LBS
import Data.Carthage.TargetPlatform
import Data.Either ( lefts )
import Data.Monoid ( (<>) )
import Data.Romefile ( Framework(..) )
import Data.Either ( lefts )
import Data.Monoid ( (<>) )
import Data.Romefile ( Framework(..) )
import qualified Data.UUID as UUID
( UUID )
( UUID )
import System.Directory
import System.FilePath ( (</>) )
import Types hiding ( version )
import System.FilePath ( (</>) )
import System.IO.Error ( isDoesNotExistError )
import Types hiding ( version )
import Utils
import Xcode.DWARF
import qualified Turtle
Expand Down Expand Up @@ -108,9 +109,12 @@ getAndUnzipBcsymbolmapWithEngine
getAndUnzipBcsymbolmapWithEngine enginePath reverseRomeMap fVersion@(FrameworkVersion f@(Framework fwn _ fwps) version) platform dwarfUUID tmpDir
= when (platform `elem` fwps) $ do
(_, verbose, _) <- ask
let sayFunc = if verbose then sayLnWithTime else sayLn
let symbolmapName = fwn <> "." <> bcsymbolmapNameFrom dwarfUUID
binary <- getBcsymbolmapWithEngine enginePath reverseRomeMap fVersion platform dwarfUUID tmpDir
deleteFile (bcsymbolmapPath dwarfUUID) verbose
liftIO $ deleteFile (bcsymbolmapPath dwarfUUID) verbose
`catch` (\e ->
if isDoesNotExistError e then when verbose $ sayFunc ("Error :" <> displayException e) else throw e)
unzipBinary binary symbolmapName (bcsymbolmapZipName dwarfUUID) verbose
where
platformBuildDirectory = carthageArtifactsBuildDirectoryForPlatform platform f
Expand Down Expand Up @@ -191,7 +195,7 @@ getArtifactFromEngine
-> ExceptT String (ReaderT (Bool, UUID.UUID) IO) LBS.ByteString
getArtifactFromEngine enginePath remotePath artifactName tmpDir = do
readerEnv <- ask
eitherArtifact :: Either IOError LBS.ByteString <- liftIO $ try $ runReaderT
eitherArtifact :: Either IOError LBS.ByteString <- liftIO $ Control.Exception.try $ runReaderT
(downloadBinaryWithEngine enginePath remotePath artifactName tmpDir)
readerEnv
case eitherArtifact of
Expand Down Expand Up @@ -229,5 +233,7 @@ downloadBinaryWithEngine enginePath objectRemotePath objectName tmpDir = do
then liftIO $ do
binary <- LBS.readFile outputPath
deleteFile outputPath verbose
`catch` (\e -> let sayFuncIO = if verbose then sayLnWithTime else sayLn in
if isDoesNotExistError e then when verbose $ sayFuncIO ("Error :" <> displayException e) else throw e)
return binary
else fail "Binary was not downloaded by engine"
Loading