aboutsummaryrefslogtreecommitdiff
path: root/Utility/Url.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Url.hs')
-rw-r--r--Utility/Url.hs24
1 files changed, 17 insertions, 7 deletions
diff --git a/Utility/Url.hs b/Utility/Url.hs
index f678720ed..6ddeecc14 100644
--- a/Utility/Url.hs
+++ b/Utility/Url.hs
@@ -20,6 +20,7 @@ import Network.URI
import Types
import Messages
import Utility.SafeCommand
+import Utility
type URLString = String
@@ -35,15 +36,24 @@ exists url =
_ -> return False
{- Used to download large files, such as the contents of keys.
- - Uses curl program for its progress bar. -}
+ - Uses wget or curl program for its progress bar. (Wget has a better one,
+ - so is preferred.) -}
download :: URLString -> FilePath -> Annex Bool
download url file = do
- showOutput -- make way for curl progress bar
- -- Uses the -# progress display, because the normal one is very
- -- confusing when resuming, showing the remainder to download
- -- as the whole file, and not indicating how much percent was
- -- downloaded before the resume.
- liftIO $ boolSystem "curl" [Params "-L -C - -# -o", File file, File url]
+ showOutput -- make way for program's progress bar
+ e <- liftIO $ inPath "wget"
+ if e
+ then
+ liftIO $ boolSystem "wget"
+ [Params "-c -O", File file, File url]
+ else
+ -- Uses the -# progress display, because the normal
+ -- one is very confusing when resuming, showing
+ -- the remainder to download as the whole file,
+ -- and not indicating how much percent was
+ -- downloaded before the resume.
+ liftIO $ boolSystem "curl"
+ [Params "-L -C - -# -o", File file, File url]
{- Downloads a small file. -}
get :: URLString -> IO String