#!/bin/sh prog=${0##*/} usage() { cat <<-EOF usage: wget [-cqS] [--spider] [-O FILE] [-o LOGFILE] [--header STR] [--post-data STR | --post-file FILE] [-Y on/off] [-P DIR] [-U AGENT] [-T SEC] URL... Retrieve files via HTTP or FTP --spider Only check URL existence: \$? is 0 if exists --header STR Add STR (of form 'header: value') to headers --post-data STR Send STR using POST method --post-file FILE Send FILE using POST method -c Continue retrieval of aborted transfer -q Quiet -P DIR Save to DIR (default .) -S Show server response -T SEC Network read timeout is SEC seconds -O FILE Save to FILE ('-' for stdout) -o LOGFILE Log messages to FILE -U STR Use STR for User-Agent header -Y on/off Use proxy EOF exit $1 } msg() { if ! [ -n "$quiet" ]; then # busybox wget sends to stderr echo "$@" >&2 fi } OPTS=$(getopt -l quiet,help,header:,output-document:,spider,timeout:,tries: -o "qhO:T:t:" -n $prog -- "$@") || usage "1" >&2 quiet= eval set -- "$OPTS" while true; do opt="$1" case "$opt" in -h|--help) usage 0 ;; -q|--quiet) quiet=1 ;; --header) shift;; --spider) exit ${SPIDER_STATUS:-0} ;; -O|--output-document) shift outfile="$1" ;; -T|--timeout) shift;; -t|--tries) shift;; --) shift break ;; *) usage "1" >&2 ;; esac shift done if [ $# -eq 0 ]; then usage "1" >&2 fi for url; do case "$url" in "") msg "bad address"; exit 1;; *fail*) msg "bad address"; exit 1;; *404*) msg "wget: server returned error: HTTP/1.1 404 Not Found"; exit 1;; esac done host="${url#http*://}" host="${host%%/*}" path="${url#http*://$host}" path="${path#${WGET_STRIP_PREFIX:-/}}" path="${path%\?*}" if [ -z "$WGETCONTENT" ]; then # Scaleway has all the data on a single TXT endpoint if [ "$CLOUD" = "scaleway" ]; then cat "${WGET_YAML:-$host.txt}" else ( IFS=/ set -- ${path#/} yx -f "${WGET_YAML:-$host.yaml}" "$@" 2>/dev/null ) fi fi : "${outfile:=index.html}" case "$outfile" in -) msg "writing to stdout" echo "$WGETCONTENT" ;; *) msg "saving to '$outfile'" echo "$WGETCONTENT" > "$outfile" ;; esac