The wget command will now be used in preference to curl, if available.

Got tired of curl's various ugly progress bars.
This commit is contained in:
Joey Hess 2011-08-27 12:31:50 -04:00
parent f82da1d9dc
commit 6e750764b7
5 changed files with 31 additions and 10 deletions

View file

@ -15,7 +15,8 @@ module Utility (
dirContains,
dirContents,
myHomeDir,
catchBool
catchBool,
inPath
) where
import IO (bracket)
@ -94,3 +95,12 @@ myHomeDir = do
{- Catches IO errors and returns a Bool -}
catchBool :: IO Bool -> IO Bool
catchBool = flip catch (const $ return False)
{- Checks if a command is available in PATH. -}
inPath :: String -> IO Bool
inPath command = search =<< getSearchPath
where
search [] = return False
search (d:ds) = do
e <- doesFileExist $ d </> command
if e then return True else search ds

View file

@ -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
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]
liftIO $ boolSystem "curl"
[Params "-L -C - -# -o", File file, File url]
{- Downloads a small file. -}
get :: URLString -> IO String

1
debian/changelog vendored
View file

@ -2,6 +2,7 @@ git-annex (3.20110820) UNRELEASED; urgency=low
* Set EMAIL when running test suite so that git does not need to be
configured first. Closes: #638998
* The wget command will now be used in preference to curl, if available.
-- Joey Hess <joeyh@debian.org> Tue, 23 Aug 2011 13:41:01 -0400

2
debian/control vendored
View file

@ -31,7 +31,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends},
git | git-core,
uuid,
rsync,
curl,
wget | curl,
openssh-client
Suggests: graphviz, bup, gnupg
Description: manage files with git, without checking their contents into git

View file

@ -34,7 +34,7 @@ To build and use git-annex, you will need:
(or `uuidgen` from util-linux)
* [xargs](http://savannah.gnu.org/projects/findutils/)
* [rsync](http://rsync.samba.org/)
* [curl](http://http://curl.haxx.se/) (optional, but recommended)
* [wget](http://www.gnu.org/software/wget/) or [curl](http://http://curl.haxx.se/) (optional, but recommended)
* [sha1sum](ftp://ftp.gnu.org/gnu/coreutils/) (optional, but recommended;
a sha1 command will also do)
* [gpg](http://gnupg.org/) (optional; needed for encryption)