Added curl support and one test

Now it checks for the existance of curl after
failing to find wget.

Note that I ended up removing the quotes around $url
when referencing it in the call to wget, since urls can't have spaces
anyways, and the correct quoting was messy.

To test, I did

    rm -r .deps
    make clean
    make cmake
    make

And it worked.
This commit is contained in:
Theo Belaire 2014-02-22 14:49:53 -08:00 committed by ash-lshift
parent d5f74cf8bb
commit e7b0aa224a

View File

@ -23,23 +23,31 @@ download() {
if [ ! -d "$tgt" ]; then
mkdir -p "$tgt"
local download_command=""
if which wget > /dev/null 2>&1; then
tmp_dir=$(mktemp -d "/tmp/download_sha1check_XXXXXXX")
fifo="$tmp_dir/fifo"
# -O - to send output to stdout
download_command="wget $url -O -"
elif which curl >/dev/null 2>&1; then
# -L to follow the redirects that github will send us
# -sS to supress the progress bar, but show errors
# curl sends output to stdout by default
download_command="curl -L -sS $url"
else
echo "Missing wget utility and curl utility"
exit 1
fi
local tmp_dir=$(mktemp -d "/tmp/download_sha1check_XXXXXXX")
local fifo="$tmp_dir/fifo"
mkfifo "$fifo"
# download, untar and calculate sha1 sum in one pass
(wget "$url" -O - | tee "$fifo" | \
($download_command | tee "$fifo" | \
(cd "$tgt"; tar --strip-components=1 -xvzf -)) &
sum=$("$sha1sumcmd" < "$fifo" | cut -d ' ' -f1)
local sum=$("$sha1sumcmd" < "$fifo" | cut -d ' ' -f1)
rm -rf "$tmp_dir"
if [ "$sum" != "$sha1" ]; then
echo "SHA1 sum doesn't match, expected '$sha1' got '$sum'"
exit 1
fi
else
echo "Missing wget utility"
exit 1
fi
fi
}