Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors.
ghc 8 added backtraces on uncaught errors. This is great, but git-annex was using error in many places for a error message targeted at the user, in some known problem case. A backtrace only confuses such a message, so omit it. Notably, commands like git annex drop that failed due to eg, numcopies, used to use error, so had a backtrace. This commit was sponsored by Ethan Aubin.
This commit is contained in:
parent
69915c6c9b
commit
0a4479b8ec
116 changed files with 287 additions and 270 deletions
|
@ -59,7 +59,7 @@ getChunkConfig m =
|
|||
Just size
|
||||
| size == 0 -> NoChunks
|
||||
| size > 0 -> c (fromInteger size)
|
||||
_ -> error $ "bad configuration " ++ f ++ "=" ++ v
|
||||
_ -> giveup $ "bad configuration " ++ f ++ "=" ++ v
|
||||
|
||||
-- An infinite stream of chunk keys, starting from chunk 1.
|
||||
newtype ChunkKeyStream = ChunkKeyStream [Key]
|
||||
|
|
|
@ -66,14 +66,14 @@ encryptionSetup c gc = do
|
|||
encsetup $ genEncryptedCipher cmd (c, gc) key Hybrid
|
||||
Just "pubkey" -> encsetup $ genEncryptedCipher cmd (c, gc) key PubKey
|
||||
Just "sharedpubkey" -> encsetup $ genSharedPubKeyCipher cmd key
|
||||
_ -> error $ "Specify " ++ intercalate " or "
|
||||
_ -> giveup $ "Specify " ++ intercalate " or "
|
||||
(map ("encryption=" ++)
|
||||
["none","shared","hybrid","pubkey", "sharedpubkey"])
|
||||
++ "."
|
||||
key = fromMaybe (error "Specifiy keyid=...") $ M.lookup "keyid" c
|
||||
key = fromMaybe (giveup "Specifiy keyid=...") $ M.lookup "keyid" c
|
||||
newkeys = maybe [] (\k -> [(True,k)]) (M.lookup "keyid+" c) ++
|
||||
maybe [] (\k -> [(False,k)]) (M.lookup "keyid-" c)
|
||||
cannotchange = error "Cannot set encryption type of existing remotes."
|
||||
cannotchange = giveup "Cannot set encryption type of existing remotes."
|
||||
-- Update an existing cipher if possible.
|
||||
updateCipher cmd v = case v of
|
||||
SharedCipher _ | maybe True (== "shared") encryption -> return (c', EncryptionIsSetup)
|
||||
|
|
|
@ -70,7 +70,7 @@ handlePopper numchunks chunksize meterupdate h sink = do
|
|||
-- meter as it goes.
|
||||
httpBodyRetriever :: FilePath -> MeterUpdate -> Response BodyReader -> IO ()
|
||||
httpBodyRetriever dest meterupdate resp
|
||||
| responseStatus resp /= ok200 = error $ show $ responseStatus resp
|
||||
| responseStatus resp /= ok200 = giveup $ show $ responseStatus resp
|
||||
| otherwise = bracket (openBinaryFile dest WriteMode) hClose (go zeroBytesProcessed)
|
||||
where
|
||||
reader = responseBody resp
|
||||
|
|
|
@ -29,7 +29,7 @@ showChecking :: Describable a => a -> Annex ()
|
|||
showChecking v = showAction $ "checking " ++ describe v
|
||||
|
||||
cantCheck :: Describable a => a -> e
|
||||
cantCheck v = error $ "unable to check " ++ describe v
|
||||
cantCheck v = giveup $ "unable to check " ++ describe v
|
||||
|
||||
showLocking :: Describable a => a -> Annex ()
|
||||
showLocking v = showAction $ "locking " ++ describe v
|
||||
|
|
|
@ -29,7 +29,7 @@ import Config
|
|||
toRepo :: Git.Repo -> RemoteGitConfig -> [CommandParam] -> Annex [CommandParam]
|
||||
toRepo r gc sshcmd = do
|
||||
let opts = map Param $ remoteAnnexSshOptions gc
|
||||
let host = fromMaybe (error "bad ssh url") $ Git.Url.hostuser r
|
||||
let host = fromMaybe (giveup "bad ssh url") $ Git.Url.hostuser r
|
||||
params <- sshOptions (host, Git.Url.port r) gc opts
|
||||
return $ params ++ Param host : sshcmd
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue