From df05d495b0d3caaac2570d5a955c988f85d90ca9 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 16 Dec 2011 16:02:46 +0100 Subject: abuild: use curl by default. fallback to wget if curl is missing fixes #871 --- abuild.in | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/abuild.in b/abuild.in index 5a62926..7b1af38 100755 --- a/abuild.in +++ b/abuild.in @@ -236,11 +236,26 @@ sourcecheck() { 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() { local uri="$1" local d="${uri##*/}" # $(basename $uri) local opts - [ -n "$quiet" ] && opts="-q" + [ -n "$quiet" ] && opts="-s" [ -f "$SRCDEST/$d" ] && return 0 # fix saveas-*://* URIs @@ -250,18 +265,24 @@ uri_fetch() { saveas-*://*) uri="${uri:7:$(expr ${#uri} - 7 - ${#d} - 1)}";; esac - # we need GNU wget for this case "$uri" in - https://*) opts="--no-check-certificate";; + https://*) opts="-k";; esac - + mkdir -p "$SRCDEST" if [ -f "$SRCDEST/$d.part" ]; then msg "Partial download found. Trying to resume" - opts="$opts -c" + opts="$opts -C -" fi 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" } -- cgit v1.2.3-60-g2f50