mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-14 19:02:45 +03:00
105 lines
2.0 KiB
Bash
Executable File
105 lines
2.0 KiB
Bash
Executable File
#!/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
|
|
(
|
|
IFS=/
|
|
set -- ${path#/}
|
|
yx -f "${WGET_YAML:-$host.yaml}" "$@" 2>/dev/null
|
|
)
|
|
fi
|
|
|
|
: "${outfile:=index.html}"
|
|
case "$outfile" in
|
|
-) msg "writing to stdout"
|
|
echo "$WGETCONTENT"
|
|
;;
|
|
*) msg "saving to '$outfile'"
|
|
echo "$WGETCONTENT" > "$outfile"
|
|
;;
|
|
esac
|
|
|