mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-07-29 19:18:36 -07:00
171 lines
6.3 KiB
Bash
171 lines
6.3 KiB
Bash
# wget(1) completion -*- shell-script -*-
|
|
|
|
_wget()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--version|--help|-!(-*)[hV])
|
|
return
|
|
;;
|
|
--progress)
|
|
COMPREPLY=( $(compgen -W 'bar dot' -- "$cur") )
|
|
return
|
|
;;
|
|
--bind-address)
|
|
_ip_addresses
|
|
return
|
|
;;
|
|
--domains|--exclude-domains|-!(-*)D)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
--restrict-file-names)
|
|
local excludes=()
|
|
case $cur in
|
|
*unix*|*windows*)
|
|
excludes=( windows unix )
|
|
;;&
|
|
*lowercase*|*uppercase*)
|
|
excludes+=( lowercase uppercase )
|
|
;;&
|
|
*nocontrol*)
|
|
excludes+=( nocontrol )
|
|
;;&
|
|
*ascii*)
|
|
excludes+=( ascii )
|
|
;;
|
|
esac
|
|
local excludes_str=$(export IFS='|'; echo "${excludes[*]}";)
|
|
|
|
# prevopt is the previous options string used as a prefix
|
|
# to avoid COMPREPLY replacing them with the $lastopt completion
|
|
local lastopt=${cur/*,} prevopt=
|
|
[[ $cur == *,* ]] && prevopt=${cur%,*},
|
|
|
|
COMPREPLY=( $(compgen -P "$prevopt" -X "@($excludes_str)" \
|
|
-W 'unix windows nocontrol ascii lowercase uppercase' \
|
|
-- "$lastopt") )
|
|
|
|
# +o nospace when no more valid option is possible (= append a space)
|
|
local opt_as_arr=( $(echo ${COMPREPLY[0]//,/ }) )
|
|
[[ ${#opt_as_arr[@]} -lt 4 ]] && compopt -o nospace
|
|
return
|
|
;;
|
|
--prefer-family)
|
|
COMPREPLY=( $(compgen -W 'IPv4 IPv6 none' -- "$cur") )
|
|
return
|
|
;;
|
|
--directory-prefix|--ca-directory|--warc-tempdir|-!(-*)P)
|
|
_filedir -d
|
|
return
|
|
;;
|
|
--output-file|--append-output|--config|--load-cookies|--save-cookies|\
|
|
--post-file|--certificate|--ca-certificate|--private-key|\
|
|
--random-file|--egd-file|--warc-file|--warc-dedup|-!(-*)[oa])
|
|
_filedir
|
|
return
|
|
;;
|
|
--output-document|--input-file|-!(-*)[Oi])
|
|
_filedir && [[ $cur == - || -z $cur ]] && COMPREPLY+=( - )
|
|
return
|
|
;;
|
|
--secure-protocol)
|
|
COMPREPLY=( $(compgen -W 'auto SSLv2 SSLv3 TLSv1' -- "$cur") )
|
|
return
|
|
;;
|
|
--certificate-type|--private-key-type)
|
|
COMPREPLY=( $(compgen -W 'PEM DER' -- "$cur") )
|
|
return
|
|
;;
|
|
--follow-tags|--ignore-tags)
|
|
local lastopt=${cur/*,} prevopt=
|
|
[[ $cur == *,* ]] && prevopt=${cur%,*},
|
|
|
|
COMPREPLY=( $(compgen -P "$prevopt" -W 'a abbr acronym address
|
|
applet area b base basefont bdo big blockquote body br button
|
|
caption center cite code col colgroup dd del dir div dfn dl dt
|
|
em fieldset font form frame frameset h6 head hr html i iframe
|
|
img input ins isindex kbd label legend li link map menu meta
|
|
noframes noscript object ol optgroup option p param pre q s
|
|
samp script select small span strike strong style sub sup table
|
|
tbody td textarea tfoot th thead title tr tt u ul var xmp' \
|
|
-- "$lastopt") )
|
|
return
|
|
;;
|
|
--tries|--timeout|--dns-timeout|--connect-timeout|--read-timeout|\
|
|
--wait|--waitretry|--cut-dirs|--max-redirect|--level|-!(-*)[tTwl])
|
|
# expect integer number
|
|
COMPREPLY+=( $(compgen -P "$cur" -W "{0..9}") )
|
|
compopt -o nospace
|
|
return
|
|
;;
|
|
--quota|--limit-rate|--warc-max-size|-!(-*)Q)
|
|
# expect size
|
|
if [[ $cur == *[km] ]]; then
|
|
COMPREPLY=( $(compgen -W "$cur") )
|
|
elif [[ $cur ]]; then
|
|
COMPREPLY=( $(compgen -P "$cur" -W "{0..9} k m") )
|
|
compopt -o nospace
|
|
else
|
|
COMPREPLY=( $(compgen -W "{0..9}") )
|
|
compopt -o nospace
|
|
fi
|
|
return
|
|
;;
|
|
--user|--http-user|--proxy-user|--ftp-user)
|
|
COMPREPLY=( $(compgen -W "$(command sed -n \
|
|
'/^login/s/^[[:blank:]]*login[[:blank:]]//p' ~/.netrc \
|
|
2>/dev/null)" -- "$cur") )
|
|
return
|
|
;;
|
|
--header)
|
|
COMPREPLY=( $(compgen -W 'Accept Accept-Charset Accept-Encoding
|
|
Accept-Language Accept-Ranges Age Allow Authorization
|
|
Cache-Control Connection Content-Encoding Content-Language
|
|
Content-Length Content-Location Content-MD5 Content-Range
|
|
Content-Type Date ETag Expect Expires From Host If-Match
|
|
If-Modified-Since If-None-Match If-Range If-Unmodified-Since
|
|
Last-Modified Location Max-Forwards Pragma Proxy-Authenticate
|
|
Proxy-Authorization Range Referer Retry-After Server TE Trailer
|
|
Transfer-Encoding Upgrade User-Agent Vary Via Warning
|
|
WWW-Authenticate' -- "$cur") )
|
|
compopt -o nospace
|
|
return
|
|
;;
|
|
--local-encoding|--remote-encoding)
|
|
type -P xauth &>/dev/null && _xfunc iconv _iconv_charsets
|
|
return
|
|
;;
|
|
--execute|-!(-*)e)
|
|
return # TODO base=STR
|
|
;;
|
|
--report-speed)
|
|
COMPREPLY=( $(compgen -W 'bits' -- "$cur") )
|
|
return
|
|
;;
|
|
--regex-type)
|
|
COMPREPLY=( $(compgen -W 'posix' -- "$cur") )
|
|
return
|
|
;;
|
|
--base|--password|--ftp-password|--http-password|--proxy-password|\
|
|
--default-page|--referer|--user-agent|--post-data|--warc-header|\
|
|
--accept|--reject|--accept-regex|--reject-regex|--include-directories|\
|
|
--exclude-directories|-!(-*)[BUARIX])
|
|
# argument required but no completions available
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") )
|
|
[[ $COMPREPLY == *= ]] && compopt -o nospace
|
|
fi
|
|
|
|
} &&
|
|
complete -F _wget wget
|
|
|
|
# ex: filetype=sh
|