summaryrefslogtreecommitdiffstats
path: root/completions/wget
diff options
context:
space:
mode:
Diffstat (limited to 'completions/wget')
-rw-r--r--completions/wget174
1 files changed, 174 insertions, 0 deletions
diff --git a/completions/wget b/completions/wget
new file mode 100644
index 0000000..d6a2fe9
--- /dev/null
+++ b/completions/wget
@@ -0,0 +1,174 @@
+# 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=(${COMPREPLY[0]//,/ })
+ ((${#opt_as_arr[@]} < 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