forked from JuliaLang/julia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jldownload
executable file
·42 lines (35 loc) · 896 Bytes
/
jldownload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/sh
#
# usage: jldownload [<output-filename>] <url>
#
MIRROR_HOST=http:https://d304tytmzqn1fl.cloudfront.net
WGET=$(which wget)
CURL=$(which curl)
FETCH=$(which fetch)
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
exit 1
fi
$GETURL $URL || $GETURL $MIRROR_URL