make storeKey throw exceptions

When storing content on remote fails, always display a reason why.

Since the Storer used by special remotes already did, this mostly affects
git remotes, but not entirely. For example, if git-lfs failed to connect to
the endpoint, it used to silently return False.
This commit is contained in:
Joey Hess 2020-05-13 14:03:00 -04:00
parent b50ee9cd0c
commit c1cd402081
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
34 changed files with 214 additions and 197 deletions

View file

@ -126,8 +126,12 @@ toPerform dest removewhen key afile fastcheck isthere =
Right False -> do
showAction $ "to " ++ Remote.name dest
ok <- notifyTransfer Upload afile $
upload (Remote.uuid dest) key afile stdRetry $
Remote.storeKey dest key afile
upload (Remote.uuid dest) key afile stdRetry $ \p ->
tryNonAsync (Remote.storeKey dest key afile p) >>= \case
Left e -> do
warning (show e)
return False
Right () -> return True
if ok
then finish False $
Remote.logStatus dest key InfoPresent