From 2be0d8bdef401b6bca0c80a7bd78d658e862e38e Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Thu, 14 Aug 2014 19:02:48 +0200 Subject: 32998: completion function updates --- ChangeLog | 4 +++ Completion/Unix/Command/_dsh | 33 +++++++++++++++++ Completion/Unix/Command/_mosh | 32 ++++++++++++----- Completion/Unix/Command/_nm | 80 +++++++++++++++++++++++++++++------------- Completion/Unix/Command/_rsync | 5 ++- Completion/Unix/Command/_wget | 19 ++++++++-- 6 files changed, 136 insertions(+), 37 deletions(-) create mode 100644 Completion/Unix/Command/_dsh diff --git a/ChangeLog b/ChangeLog index 6bd84c07d..f70718cab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2014-08-14 Oliver Kiddle + * 32998: Completion/Unix/Command/_dsh, Completion/Unix/Command/_nm, + Completion/Unix/Command/_mosh, Completion/Unix/Command/_rsync, + Completion/Unix/Command/_wget: completion function updates + * 32997: Completion/Base/Utility/_sequence, Doc/Zsh/compsys.yo, Completion/Unix/Command/_mount, Completion/Unix/Command/_nmap, Completion/Unix/Command/_pgrep, Completion/Unix/Command/_zip: diff --git a/Completion/Unix/Command/_dsh b/Completion/Unix/Command/_dsh new file mode 100644 index 000000000..688e024ce --- /dev/null +++ b/Completion/Unix/Command/_dsh @@ -0,0 +1,33 @@ +#compdef dsh + +local curcontext="$curcontext" state line expl +typeset -A opt_args + +_arguments -s -C -S \ + '(-v --verbose -q --quiet)'{-v,--verbose}'[verbose output]' \ + '(-q --quiet -v --verbose)'{-q,--quiet}'[quieter output]' \ + '(-M --show-machine-names)'{-M,--show-machine-names}'[prepend the host name on output]' \ + '(-i --duplicate-input)'{-i,--duplicate-input}'[duplicate input given to dsh]' \ + '(-b --bufsize)'{-b,--bufsize}'[change buffer size used in input duplication]:buffer size for -i (bytes)' \ + '(-m --machine)'{-m,--machine}'[execute on machine]:machine:{_hosts || _user_at_host}' \ + '(-n --num-topology)'{-n,--num-topology}'[how to divide the machines]:number' \ + '(-a --all)'{-a,--all}'[execute on all machines]' \ + '(-g --group)'{-g,--group}'[execute on group member]:groupname:->groups' \ + '(-f --file)'{-f,--file}'[use the file as list of machines]:file:_files' \ + '(-r --remoteshell)'{-r,--remoteshell}'[execute using shell]:remote shell:(rsh ssh)' \ + '(-o --remoteshellopt)'{-o,--remoteshellopt}'[option to give to remote shell ]:option' \ + '(-)'{-h,--help}'[display help information]' \ + '(-w --wait-shell -c --concurrent-shell)'{-w,--wait-shell}'[sequentially execute shell]' \ + '(-c --concurrent-shell -w --wait-shell)'{-c,--concurrent-shell}'[execute shell concurrently]' \ + '(-F --forklimit)'{-F,--forklimit}'[concurrent with limit on number]:fork limit' \ + '(-)'{-V,--version}'[display version information]' \ + '*::args: _normal' && return + +if [[ $state = groups ]]; then + if ! zstyle -s ":completion:$curcontext:dsh-groups" dsh-groups grp; then + [[ -e ~/.dsh/group ]] && grp="~/.dsh/group" || return 1 + fi + _path_files -W ~/.dsh/group && return +fi + +return 1 diff --git a/Completion/Unix/Command/_mosh b/Completion/Unix/Command/_mosh index c940f9015..dacbd1018 100644 --- a/Completion/Unix/Command/_mosh +++ b/Completion/Unix/Command/_mosh @@ -1,12 +1,26 @@ #compdef mosh +local curcontext="$curcontext" state line +local -a suf + _arguments \ - '--client=:client helper:_command_names -e' \ - '--server=:server helper:_files' \ - '--ssh=:ssh command to run:_files' \ - '(-a -n)--predict=:when:(adaptive always never)' \ - '(--predict -n)-a[predict always]' \ - '(--predict -a)-n[predict never]' \ - {-p,--port=}':port:_ports' \ - ':remote:_hosts' \ - ':remote command:_command_names -e' + '(-)--help[display help information]' \ + '(-)--version[display version information]' \ + "--no-init[don't set terminal init string]" \ + '--ssh=[specify ssh command to setup session]:ssh command:_normal' \ + '--port=[specify server-side port range]:port:_sequence -n 2 -s \: _ports' \ + '(-a -n)--predict=[control speculative local echo]:mode:(adaptive always never)' \ + '(--predict -n)-a[synonym for --predict=always]' \ + '(--predict -a)-n[synonym for --predict=never]' \ + '--server[specify command to run server helper]:remote file:_files' \ + '--client[specify command to run client helper]:_command_names -e' \ + '1:remote host name:->userhost' \ + '*:::args:_normal' && return + +case $state in + userhost) + _hosts || _user_at_host && return + ;; +esac + +return 1 diff --git a/Completion/Unix/Command/_nm b/Completion/Unix/Command/_nm index 3ceb8c932..6c95a0d85 100644 --- a/Completion/Unix/Command/_nm +++ b/Completion/Unix/Command/_nm @@ -1,30 +1,62 @@ #compdef nm -# This is a stub. It's main reason for existence is to offer -# object files with nm. Feel free to extend it. If you do, remove -# this comment. +local args files -local state context line expl -local -A opt_args -local -a args -integer ret=1 +_nm_object_file() { + [[ -x $REPLY || $REPLY = *.([ao]|so) ]] +} -if _pick_variant gnu='Free Soft' unix --version; then - args+=(-s --) -fi -args+=('*:file:->file') - -_arguments "$args[@]" && ret=0 +files="*:object file:_path_files -g '*(-.e:_nm_object_file:)'" +args=( + '(-A -o --print-file-name)'{-A,-o,--print-file-name}'[print name of input file on each line]' + '(--demangle)-C[decode symbol names]' + '(-D --dynamic)'{-D,--dynamic}'[display dynamic symbols instead of normal ones]' + '(-g --extern-only)'{-g,--extern-only}'[display only global symbols]' + '(-t --radix -o -x)'{-t,--radix}'[specify radix for numeric values]:radix:((d\:decimal o\:octal x\:hexadecimal))' +) -case $state in - (file) - _alternative \ - "object-files:object file:_path_files -g '*.o'" \ - "executable-files:executable file:_path_files -g '*(*)'" \ - "dynamic-libraries:dynamic library:_path_files -g '*.so(.*)#'" \ - "static-libraries:static library:_path_files -g '*.a'" \ - "directories:directory:_path_files -g '*(/)'" && ret=0 - ;; -esac +if _pick_variant gnu=GNU unix -V; then + compset -P '@' && files='*:options file:_files' + args+=( + '(- *)--help[display help information]' + '(- *)--version[display version information]' + '(-f --format -P --portability)-B[same as --format=bsd]' + '(-C --no-demangle)--demangle=-[decode symbol names]::style:(auto gnu lucid arm hp edg gnu-v3 java gnat)' + "(-C --demangle)--no-demangle[don't decode symbol names]" + '(-u --undefined-only)--defined-only[display only defined symbols]' + '(-f --format -P)'{-f+,--format=}'[specify output format]:format:(bsd sysv posix)' + '(-l --line-numbers)'{-l,--line-numbers}'[display source file and line numbers from debug information]' + '(-n --numeric-sort -p --no-sort --size-sort)'{-n,--numeric-sort}'[sort symbols numerically by address]' + '(-p --no-sort -n --numeric-sort -r -P --reverse-sort --size-sort)'{-p,--no-sort}'[do not sort symbols]' + '(-P --portability -B -f --format)'{-P,--portability}'[same as --format=posix]' + '(-r --reverse-sort -p --no-sort --size-sort)'{-r,--reverse-sort}'[reverse sort order]' + '--plugin[load specified plugin]:plugin' + '(-u --undefined-only --defined-only)'{-u,--undefined-only}'[display only undefined symbols]' + "--target=[target object format]:targets:(${${(@M)${(f)$(_call_program targets nm --help)}:#*supported targets:*}##*: })" + '(-a --debug-syms)'{-a,--debug-syms}'[display debugger-only symbols]' + '(-S --print-size)'{-S,--print-size}'[print size of defined symbols]' + '(-s --print-armap)'{-s,--print-armap}'[include index for symbols from archive members]' + '(-p --no-sort -n --numeric-sort -r)--size-sort[sort symbols by size]' + '--special-syms[include special symbols in the output]' + '--synthetic[display synthetic symbols as well]' + ) +else + # following flags are accurate for Solaris + args=( ${args:#(|*\)(\*|))-[o-]*} + "-h[don't display column headers]" + '-l[distinguish WEAK symbols with * character]' + '(-t -x)-o[print values in octal]' + '(-v)-n[sort symbols by name]' + '(-P)-p[produce parsable output]' + '(-p)-P[portable output format]' + '(-r)-R[print archive name, object file and symbol name]' + '-r[prepend name of input file to each symbol name]' + '-s[print section name instead of index]' + '-u[print undefined symbols only]' + '(-n)-v[sort external symbols by value]' + '-V[display version of the nm command]' + '(-o -t)-x[print values in hexadecimal]' + ) +fi -return ret +_arguments -s "$args[@]" $files diff --git a/Completion/Unix/Command/_rsync b/Completion/Unix/Command/_rsync index a531d7df6..7bad03a05 100644 --- a/Completion/Unix/Command/_rsync +++ b/Completion/Unix/Command/_rsync @@ -74,7 +74,8 @@ _rsync() { _arguments -s \ '*'{-v,--verbose}'[increase verbosity]' \ {--no-v,--no-verbose}'[turn off --verbose]' \ - '--bwlimit=[limit I/O bandwidth]:KBytes (etc.) per second' \ + '--bwlimit=[limit I/O bandwidth]:limit (KiB per second)' \ + '--outbuf=[set output buffering]:buffering:(none line block)' \ '--port=[specify alternate port number]:port:(873)' \ '--address=[bind to the specified address]:bind address:_bind_addresses' \ '(-T --temp-dir)'{-T,--temp-dir=}'[create temporary files in specified directory]:directory:_directories' \ @@ -213,6 +214,7 @@ _rsync() { '--protocol=[force an older protocol version to be used]:number' \ '--info=[fine-grained informational verbosity]:comma-separated list' \ '--debug=[fine-grained debug verbosity]:comma-separated list' \ + '--msgs2stderr[special output handling for debugging]' \ '--munge-links[munge symlinks to make them safer, but unusable]' \ '--ignore-missing-args[ignore missing source args without error]' \ '--delete-missing-args[delete missing source args from destination]' \ @@ -222,6 +224,7 @@ _rsync() { '*'{-M=,--remote-option=}'[send option to the remote side only]:option string' \ '--preallocate[preallocate the full length of new files]' \ '--iconv=[request charset conversion of filenames]:number' \ + '--checksum-seed=:number' \ '--read-batch=[read a batched update from the specified file]:file:_files' } diff --git a/Completion/Unix/Command/_wget b/Completion/Unix/Command/_wget index f709a0830..b8ca2fd93 100644 --- a/Completion/Unix/Command/_wget +++ b/Completion/Unix/Command/_wget @@ -14,6 +14,7 @@ _arguments -C -s \ '(--quiet -q --verbose -v --no-verbose -nv)'{--quiet,-q}'[turn off output]' \ '(--quiet -q --verbose -v --no-verbose -nv)'{--verbose,-v}'[turn on verbose output]' \ '*-n+[turn off flags]:flags:->noflags' \ + '--report-speed=:type:(bits)' \ '(--input-file -i)'{--input-file=,-i+}'[specify input file]:file containing URLs:_files' \ '(--force-html -F)'{--force-html,-F}'[treat input file as html]' \ '(--base -B)'{--base=,-B+}'[prepend URL to relative links]:base URL:_urls' \ @@ -47,6 +48,7 @@ _arguments -C -s \ '--prefer-family[connect first to addresses of specified family]:address family:(IPv6 IPv4 none)' \ '(--http-user --ftp-user)--user[set both ftp and http user]:user' \ '(--http-password --ftp-password)--password[set both ftp and http password]:password' \ + '(--password --http-password --ftp-password)--ask-password:[prompt for passwords]' \ '--no-iri[turn off IRI support]' \ '--local-encoding=[specify local encoding for IRIs]:encoding' \ '--remote-encoding=[specify default remote encoding]:encoding' \ @@ -56,12 +58,13 @@ _arguments -C -s \ '(--directory-prefix -P)'{--directory-prefix=,-P+}'[specify prefix to save files to]:prefix:_files -/' \ '--cut-dirs=:number:' \ '(--user)--http-user=:user' \ - '(--password)--http-password=:password' \ + '(--password --ask-password)--http-password=:password' \ '--no-cache[disallow server-cached data]' \ '--default-page=[specify default page name, normally index.html]' \ '(--adjust-extension -E)'{--adjust-extension,-E}'[save all HTML/CSS documents with proper extensions]' \ "--ignore-length[ignore \`Content-Length' header field]" \ '*--header=:string' \ + '--max-redirect=:number' \ '--proxy-user=:user' \ '--proxy-password=:password' \ '--referer=:URL:_urls' \ @@ -74,9 +77,14 @@ _arguments -C -s \ '--keep-session-cookies[load and save session cookies]' \ '--post-data=[use the POST method with specified data]:data to send' \ '--post-file=[use the POST method; sending contents of a file]:file:_files' \ + '--method=[use specified HTTP method]:method:(GET POST HEAD DELETE)' \ + '(--body-file)--body-data=[send string as data]:string' \ + '(--body-data)--body-file=[send contents of file]:file:_files' \ '--content-disposition[honor the Content-Disposition header when choosing local file names]' \ + '--content-on-error[output received content on server errors]' \ "--auth-no-challenge[send basic HTTP authentication without first waiting for server's challenge]" \ '--secure-protocol=[choose secure protocol]:protocol:(SSLv2 SSLv3 TLSv1)' \ + --https-only \ "--no-check-certificate=[don't check the server certificate]" \ '--certificate=[specify client certificate]:client certificate file:_files' \ '--certificate-type=[specify client certificate type]:certificate type:(PEM DER)' \ @@ -87,22 +95,27 @@ _arguments -C -s \ '--random-file[specify file with random data for seeding generator]:file:_files' \ '--egd-file=[specify filename of EGD socket]:file:_files' \ '(--user)--ftp-user=:user' \ - '(--password)--ftp-password=:password' \ + '(--password --ask-password)--ftp-password=:password' \ "--no-remove-listing[don't remove \`.listing' files]" \ '--no-glob[turn off FTP file name globbing]' \ '--no-passive-ftp' \ - '--retr-symlinks' \ '--preserve-permissions[preserve remote file permissions with ftp]' \ + '--retr-symlinks' \ + '--warc-file=:file:_files' --warc-header=:string --warc-max-size=:number \ + --warc-cdx --warc-dedup=:file:_files --no-warc-compression --no-warc-digests \ + --no-warc-keep-log --warc-tempdir=:directory:_directories \ '(--recursive -r)'{--recursive,-r}'[recurse subdirectories]' \ '(--level -l)'{--level=,-l+}'[specify maximum recursion depth]:level' \ '--delete-after' \ '(--convert-links -k)'{--convert-links,-k}'[convert links to be relative]' \ + '--backups=:max backups' \ '(--backup-converted -K)'{--backup-converted,-K}'[backup files before conversion]' \ '(--mirror -m -r -N -l)'{--mirror,-m}'[mirror (-r -N -l inf --no-remove-listing)]' \ '(--page-requisites -p)'{--page-requisites,-p}'[get all images needed to display page]' \ '--strict-comments[turn on strict (SGML) handling of HTML comments]' \ '(--accept -A)'{--accept=,-A+}'[specify accepted extensions]:extensions' \ '(--reject -R)'{--reject=,-R+}'[specify rejected extensions]:extensions' \ + --{accept,reject}-regex=:regex '--regex-type=:regex type:(posix pcre)' \ '(--domains -D)'{--domains=,-D+}'[specify accepted domains]:domains:_domains' \ '--exclude-domains=:rejected domains:_domains' \ '--follow-ftp' \ -- cgit 1.4.1