diff --git a/Utility/Url.hs b/Utility/Url.hs index ddf5eea408..07be955e25 100644 --- a/Utility/Url.hs +++ b/Utility/Url.hs @@ -209,9 +209,6 @@ download' quiet url file uo = case parseURIRelaxed url of Just u | uriScheme u == "file:" -> do - -- curl does not create destination file - -- for an empty file:// url, so pre-create - writeFile file "" curl | otherwise -> ifM (inPath "wget") (wget , curl) _ -> return False @@ -240,8 +237,12 @@ download' quiet url file uo = - the remainder to download as the whole file, - and not indicating how much percent was - downloaded before the resume. -} - curl = go "curl" $ headerparams ++ quietopt "-s" ++ - [Params "-f -L -C - -# -o"] + curl = do + -- curl does not create destination file + -- if the url happens to be empty, so pre-create. + writeFile file "" + go "curl" $ headerparams ++ quietopt "-s" ++ + [Params "-f -L -C - -# -o"] go cmd opts = boolSystem cmd $ addUserAgent uo $ reqParams uo++opts++[File file, File url] quietopt s diff --git a/debian/changelog b/debian/changelog index c41a3c0b51..bb487279b9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,6 +17,7 @@ git-annex (5.20150318) UNRELEASED; urgency=medium * assistant: Committing a whole lot of files at once could overflow command-line length limits and cause the commit to fail. This only happened when using the assistant in an indirect mode repository. + * Work around curl bug when asked to download an empty url to a file. -- Joey Hess Thu, 19 Mar 2015 17:05:32 -0400