diff options
Diffstat (limited to 'completions/wget')
-rw-r--r-- | completions/wget | 118 |
1 files changed, 62 insertions, 56 deletions
diff --git a/completions/wget b/completions/wget index d6a2fe9..fcc59aa 100644 --- a/completions/wget +++ b/completions/wget @@ -1,24 +1,26 @@ # wget(1) completion -*- shell-script -*- -_wget() +_comp_cmd_wget() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return + local noargopts='!(-*|*[DPoaOitTwlQeBUARIX]*)' + # shellcheck disable=SC2254 case $prev in - --version | --help | -!(-*)[hV]) + --version | --help | -${noargopts}[hV]) return ;; --progress) - COMPREPLY=($(compgen -W 'bar dot' -- "$cur")) + _comp_compgen -- -W 'bar dot' return ;; --bind-address) - _ip_addresses + _comp_compgen_ip_addresses return ;; - --domains | --exclude-domains | -!(-*)D) - _known_hosts_real -- "$cur" + --domains | --exclude-domains | -${noargopts}D) + _comp_compgen_known_hosts -- "$cur" return ;; --restrict-file-names) @@ -47,84 +49,87 @@ _wget() local lastopt=${cur/*,/} prevopt= [[ $cur == *,* ]] && prevopt=${cur%,*}, - COMPREPLY=($(compgen -P "$prevopt" -X "@($excludes_str)" \ - -W 'unix windows nocontrol ascii lowercase uppercase' \ - -- "$lastopt")) + _comp_compgen -c "$lastopt" -- -P "$prevopt" \ + -X "@($excludes_str)" \ + -W 'unix windows nocontrol ascii lowercase uppercase' # +o nospace when no more valid option is possible (= append a space) - local opt_as_arr=(${COMPREPLY[0]//,/ }) + local -a opt_as_arr + _comp_split -F $', \t\n' opt_as_arr "${COMPREPLY[0]}" ((${#opt_as_arr[@]} < 4)) && compopt -o nospace return ;; --prefer-family) - COMPREPLY=($(compgen -W 'IPv4 IPv6 none' -- "$cur")) + _comp_compgen -- -W 'IPv4 IPv6 none' return ;; - --directory-prefix | --ca-directory | --warc-tempdir | -!(-*)P) - _filedir -d + --directory-prefix | --ca-directory | --warc-tempdir | -${noargopts}P) + _comp_compgen_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 + --output-file | --append-output | --config | --load-cookies | \ + --save-cookies | --post-file | --certificate | --ca-certificate | \ + --private-key | --random-file | --egd-file | --warc-file | \ + --warc-dedup | -${noargopts}[oa]) + _comp_compgen_filedir return ;; - --output-document | --input-file | -!(-*)[Oi]) - _filedir && [[ $cur == - || -z $cur ]] && COMPREPLY+=(-) + --output-document | --input-file | -${noargopts}[Oi]) + _comp_compgen_filedir && [[ $cur == - || ! $cur ]] && COMPREPLY+=(-) return ;; --secure-protocol) - COMPREPLY=($(compgen -W 'auto SSLv2 SSLv3 TLSv1' -- "$cur")) + _comp_compgen -- -W 'auto SSLv2 SSLv3 TLSv1' return ;; --certificate-type | --private-key-type) - COMPREPLY=($(compgen -W 'PEM DER' -- "$cur")) + _comp_compgen -- -W 'PEM DER' 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]) + _comp_compgen -c "$lastopt" -- -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' + return + ;; + --tries | --timeout | --dns-timeout | --connect-timeout | \ + --read-timeout | --wait | --waitretry | --cut-dirs | \ + --max-redirect | --level | -${noargopts}[tTwl]) # expect integer number - COMPREPLY+=($(compgen -P "$cur" -W "{0..9}")) + _comp_compgen -aR -- -P "$cur" -W "{0..9}" compopt -o nospace return ;; - --quota | --limit-rate | --warc-max-size | -!(-*)Q) + --quota | --limit-rate | --warc-max-size | -${noargopts}Q) # expect size if [[ $cur == *[km] ]]; then - COMPREPLY=($(compgen -W "$cur")) + _comp_compgen -R -- -W "$cur" elif [[ $cur ]]; then - COMPREPLY=($(compgen -P "$cur" -W "{0..9} k m")) + _comp_compgen -R -- -P "$cur" -W "{0..9} k m" compopt -o nospace else - COMPREPLY=($(compgen -W "{0..9}")) + _comp_compgen -R -- -W "{0..9}" compopt -o nospace fi return ;; --user | --http-user | --proxy-user | --ftp-user) - COMPREPLY=($(compgen -W "$(command sed -n \ + _comp_compgen_split -- "$(command sed -n \ '/^login/s/^[[:blank:]]*login[[:blank:]]//p' ~/.netrc \ - 2>/dev/null)" -- "$cur")) + 2>/dev/null)" return ;; --header) - COMPREPLY=($(compgen -W 'Accept Accept-Charset Accept-Encoding + _comp_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 @@ -133,42 +138,43 @@ _wget() 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")) + WWW-Authenticate' compopt -o nospace return ;; --local-encoding | --remote-encoding) - type -P xauth &>/dev/null && _xfunc iconv _iconv_charsets + type -P xauth &>/dev/null && _comp_compgen -x iconv charsets return ;; - --execute | -!(-*)e) + --execute | -${noargopts}e) return # TODO base=STR ;; --report-speed) - COMPREPLY=($(compgen -W 'bits' -- "$cur")) + _comp_compgen -- -W 'bits' return ;; --regex-type) - COMPREPLY=($(compgen -W 'posix' -- "$cur")) + _comp_compgen -- -W 'posix' 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]) + --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 | -${noargopts}[BUARIX]) # argument required but no completions available return ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace fi } && - complete -F _wget wget + complete -F _comp_cmd_wget wget # ex: filetype=sh |