Commit df05d495 authored by Natanael Copa's avatar Natanael Copa
Browse files

abuild: use curl by default. fallback to wget if curl is missing

fixes #871
parent ff53e776
...@@ -236,11 +236,26 @@ sourcecheck() { ...@@ -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() { ...@@ -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"
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment