Revision 8227746b95146c2921f83d2ae5f37ecd146592d8 authored by Elliot Saba on 21 October 2014, 20:18:59 UTC, committed by Elliot Saba on 21 October 2014, 22:05:51 UTC
1 parent 7b1eb64
jldownload
#!/bin/sh
#
# usage: jldownload [<output-filename>] <url>
#
MIRROR_HOST=http://d304tytmzqn1fl.cloudfront.net
WGET=$(which wget 2>/dev/null)
CURL=$(which curl 2>/dev/null)
FETCH=$(which fetch 2>/dev/null)
TIMEOUT=15 # seconds
WGET_OPTS="--no-check-certificate --tries=1 --timeout=$TIMEOUT"
CURL_OPTS="-fkL --connect-timeout $TIMEOUT -y $TIMEOUT"
FETCH_OPTS="-T $TIMEOUT"
if [ $# -eq 1 ]; then
CURL_OPTS="$CURL_OPTS -O"
URL=$1
elif [ $# -eq 2 ]; then
WGET_OPTS="$WGET_OPTS -O $1"
CURL_OPTS="$CURL_OPTS -o $1"
FETCH_OPTS="$FETCH_OPTS -o $1"
URL=$2
else
exit 1
fi
MIRROR_BASENAME=`basename $1`
MIRROR_URL="$MIRROR_HOST/$MIRROR_BASENAME"
if [ -x "$CURL" ] && $CURL -V >/dev/null; then
GETURL="$CURL $CURL_OPTS"
elif [ -x "$WGET" ] && $WGET -V >/dev/null; then
GETURL="$WGET $WGET_OPTS"
elif [ -x "$FETCH" ]; then
GETURL="$FETCH $FETCH_OPTS"
else
echo "Could not find working curl, wget, or fetch."
echo "You need to install one of these to download dependencies."
exit 1
fi
if [ -z "$JLDOWNLOAD_PREFER_MIRROR" ]; then
$GETURL $URL || $GETURL $MIRROR_URL
else
# Still try downloading from the original URL if the mirror fails.
# User may want to get around a single failure, only to run into a dep
# that we haven't mirrored yet, so better to be safe than sorry and try
# the original URL in that case
$GETURL $MIRROR_URL || $GETURL $URL
fi
Computing file changes ...