abuild: use curl by default. fallback to wget if curl is missing
fixes #871
This commit is contained in:
parent
ff53e77643
commit
df05d495b0
33
abuild.in
33
abuild.in
@ -236,11 +236,26 @@ sourcecheck() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# convert curl options to wget options and call wget instead of curl
|
||||||
|
wget_fallback() {
|
||||||
|
local wget_opts= outfile= opt=
|
||||||
|
while getopts "C:ko:s" opt; do
|
||||||
|
case $opt in
|
||||||
|
'C') wget_opts="$wget_opts -c";; # --continue-at
|
||||||
|
's') wget_opts="$wget_opts -q";; # --silent
|
||||||
|
'o') wget_opts="$wget_opts -O $OPTARG";; # --output
|
||||||
|
'k') wget_opts="$wget_opts --no-check-certificate";; #gnu wget
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(( $OPTIND - 1 ))
|
||||||
|
wget $wget_opts "$1"
|
||||||
|
}
|
||||||
|
|
||||||
uri_fetch() {
|
uri_fetch() {
|
||||||
local uri="$1"
|
local uri="$1"
|
||||||
local d="${uri##*/}" # $(basename $uri)
|
local d="${uri##*/}" # $(basename $uri)
|
||||||
local opts
|
local opts
|
||||||
[ -n "$quiet" ] && opts="-q"
|
[ -n "$quiet" ] && opts="-s"
|
||||||
[ -f "$SRCDEST/$d" ] && return 0
|
[ -f "$SRCDEST/$d" ] && return 0
|
||||||
|
|
||||||
# fix saveas-*://* URIs
|
# fix saveas-*://* URIs
|
||||||
@ -250,18 +265,24 @@ uri_fetch() {
|
|||||||
saveas-*://*) uri="${uri:7:$(expr ${#uri} - 7 - ${#d} - 1)}";;
|
saveas-*://*) uri="${uri:7:$(expr ${#uri} - 7 - ${#d} - 1)}";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# we need GNU wget for this
|
|
||||||
case "$uri" in
|
case "$uri" in
|
||||||
https://*) opts="--no-check-certificate";;
|
https://*) opts="-k";;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
mkdir -p "$SRCDEST"
|
mkdir -p "$SRCDEST"
|
||||||
if [ -f "$SRCDEST/$d.part" ]; then
|
if [ -f "$SRCDEST/$d.part" ]; then
|
||||||
msg "Partial download found. Trying to resume"
|
msg "Partial download found. Trying to resume"
|
||||||
opts="$opts -c"
|
opts="$opts -C -"
|
||||||
fi
|
fi
|
||||||
msg "Fetching $uri"
|
msg "Fetching $uri"
|
||||||
wget $opts -O "$SRCDEST/$d.part" "$uri" \
|
|
||||||
|
# fallback to wget if curl is missing. useful for bootstrapping
|
||||||
|
local fetcher=curl
|
||||||
|
if ! [ -x "$(which curl)" ]; then
|
||||||
|
fetcher=wget_fallback
|
||||||
|
fi
|
||||||
|
|
||||||
|
$fetcher $opts -o "$SRCDEST/$d.part" "$uri" \
|
||||||
&& mv "$SRCDEST/$d.part" "$SRCDEST/$d"
|
&& mv "$SRCDEST/$d.part" "$SRCDEST/$d"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user