summaryrefslogtreecommitdiff
path: root/Utility
diff options
context:
space:
mode:
Diffstat (limited to 'Utility')
-rw-r--r--Utility/Url.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/Utility/Url.hs b/Utility/Url.hs
index 508b9eeb4..c877583d8 100644
--- a/Utility/Url.hs
+++ b/Utility/Url.hs
@@ -118,8 +118,16 @@ download' quiet url headers options file =
- downloaded before the resume. -}
curl = go "curl" $ headerparams ++ quietopt "-s" ++
[Params "-f -L -C - -# -o"]
- go cmd opts = boolSystem cmd $
- options++opts++[File file, File url]
+ go cmd opts = do
+ ok <- boolSystem cmd $
+ options++opts++[File file, File url]
+ -- wget sometimes leaves behind an empty file on failure;
+ -- remove this as it sometimes interferes with a re-download
+ unless ok $ do
+ size <- catchMaybeIO $ fileSize <$> getFileStatus file
+ when (size == Just 0) $
+ removeFile file
+ return ok
quietopt s
| quiet = [Param s]
| otherwise = []