summaryrefslogtreecommitdiff
path: root/completions/wget
diff options
context:
space:
mode:
Diffstat (limited to 'completions/wget')
-rw-r--r--completions/wget164
1 files changed, 164 insertions, 0 deletions
diff --git a/completions/wget b/completions/wget
new file mode 100644
index 00000000..1fc5c955
--- /dev/null
+++ b/completions/wget
@@ -0,0 +1,164 @@
+# wget(1) completion -*- shell-script -*-
+
+_wget()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ case $prev in
+ --progress)
+ COMPREPLY=( $( compgen -W 'bar dot' -- "$cur" ) )
+ return
+ ;;
+ --bind-address)
+ _ip_addresses "$cur"
+ return
+ ;;
+ -D|--domains|--exclude-domains)
+ _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
+ ;;
+ -P|--directory-prefix|--ca-directory|--warc-tempdir)
+ _filedir -d
+ return
+ ;;
+ -o|--output-file|-a|--append-output|--config|--load-cookies|\
+ --save-cookies|--post-file|--certificate|--ca-certificate|\
+ --private-key|--random-file|--egd-file|--warc-file|--warc-dedup)
+ _filedir
+ return
+ ;;
+ -O|--output-document|-i|--input-file)
+ _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
+ ;;
+ -t|--tries|-T|--timeout|--dns-timeout|--connect-timeout|--read-timeout|\
+ -w|--wait|--waitretry|--cut-dirs|--max-redirect|-l|--level)
+ # expect integer number
+ COMPREPLY+=( $( compgen -P "$cur" -W "{0..9}" ) )
+ compopt -o nospace
+ return
+ ;;
+ -Q|--quota|--limit-rate|--warc-max-size)
+ # expect size
+ if [[ $cur == *@(k|m) ]]; 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 "$( 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 && \
+ COMPREPLY=( $( compgen -W '$( iconv -l 2>/dev/null | \
+ sed -e "s@/*\$@@" -e "s/[,()]//g" 2>/dev/null )' -- "$cur" ) )
+ return
+ ;;
+ -e|--execute)
+ return # TODO base=STR
+ ;;
+ -nv|--report-speed)
+ COMPREPLY=( $( compgen -W 'bits' -- "$cur" ) )
+ return
+ ;;
+ -B|--base|--password|--ftp-password|--http-password|--proxy-password|\
+ --default-page|--referer|-U|--user-agent|--post-data|--warc-header|-A|\
+ --accept|-R|--reject|-I|--include-directories|-X|--exclude-directories)
+ # 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: ts=4 sw=4 et filetype=sh