about summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
authorOliver Kiddle <okiddle@yahoo.co.uk>2018-11-12 10:32:41 +0100
committerOliver Kiddle <okiddle@yahoo.co.uk>2018-11-12 10:32:41 +0100
commitd5fec6b512c1d588a5a3dee27226b870a3fe3363 (patch)
tree8a96c76ed0f65eab8da03085874d028e57e96465 /Completion/Unix
parentf6495ebae8f15a88312aa4e2ad7acc473927e6ad (diff)
downloadzsh-d5fec6b512c1d588a5a3dee27226b870a3fe3363.tar.gz
zsh-d5fec6b512c1d588a5a3dee27226b870a3fe3363.tar.xz
zsh-d5fec6b512c1d588a5a3dee27226b870a3fe3363.zip
43816: various completion option updates
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_ansible27
-rw-r--r--Completion/Unix/Command/_column1
-rw-r--r--Completion/Unix/Command/_dhclient1
-rw-r--r--Completion/Unix/Command/_dmidecode7
-rw-r--r--Completion/Unix/Command/_jq9
-rw-r--r--Completion/Unix/Command/_links145
-rw-r--r--Completion/Unix/Command/_luarocks97
-rw-r--r--Completion/Unix/Command/_mpc11
-rw-r--r--Completion/Unix/Command/_samba1
-rw-r--r--Completion/Unix/Command/_script1
-rw-r--r--Completion/Unix/Command/_ssh3
-rw-r--r--Completion/Unix/Command/_tmux7
12 files changed, 233 insertions, 77 deletions
diff --git a/Completion/Unix/Command/_ansible b/Completion/Unix/Command/_ansible
index 330ef66b7..89a4998b7 100644
--- a/Completion/Unix/Command/_ansible
+++ b/Completion/Unix/Command/_ansible
@@ -1,6 +1,6 @@
 #compdef ansible ansible-config ansible-console ansible-doc ansible-galaxy ansible-inventory ansible-playbook ansible-pull ansible-vault
 
-local curcontext="$curcontext" plug plugvar ret=1
+local curcontext="$curcontext" plug plugvar ign ret=1
 local -a args state line
 local -A opt_args
 
@@ -30,7 +30,7 @@ case $service in
       '(-D --diff)'{-D,--diff}'[show differences when changing small files and templates]'
       '(-b --become)'{-b,--become}'[escalate privileges on remote system]'
       '(-f --forks)'{-f+,--forks=}'[specify number of parallel processes to use]:processes [5]'
-      '--become-method=[specify privilege escalation method to use]:method [sudo]:(sesu sudo su pbrun pfexec doas dzdo ksu runas pmrun enable)'
+      '--become-method=[specify privilege escalation method to use]:method [sudo]:(sudo su pbrun pfexec doas dzdo ksu runas pmrun enable machinectl)'
       '--become-user=[specify remote user for running operations]:user:_users'
       "--syntax-check[perform a syntax check on the playbook, but don't execute it]"
       '!(-R --su-user -U --sudo-user)'{-R,-U,--su-user,--sudo-user}':user [root]:_users'
@@ -102,6 +102,7 @@ case $service in
   ;;
   ansible-doc)
     args+=(
+      '!(-l --list -F --list_files -s --snippet)'{-j,--json} # "internal testing only"
       '(-l --list -F --list_files -s --snippet)'{-l,--list}'[list available plugins]'
       '(-l --list -F --list_files -s --snippet)'{-F,--list_files}'[show plugin names and their source files without summaries]'
       '(-l --list -F --list_files -s --snippet)'{-s,--snippet}'[show playbook snippet for specified plugins]'
@@ -143,6 +144,7 @@ case $service in
   ansible-pull)
     args+=(
       "--check[don't make any changes]"
+      '--diff[show the differences in changed files]'
       '(-d --directory)'{-d+,--directory=}'[specify directory to checkout repository to]:directory:_directories'
       '--full[do a full instead of a shallow clone]'
       '(-m --module-name)'{-m+,--module-name=}'[specify repository module used for checking out repository]:module:(git subversion hg bzr)'
@@ -167,9 +169,10 @@ case $service in
   ;;
 esac
 
+(( $#words > 2 )) && ign='!'
 _arguments -s -S -C $args \
-  '(- :)--version[display version information]' \
-  '(- :)'{-h,--help}'[display usage information]' \
+  "${ign}(- :)--version[display version information]" \
+  "${ign}(- :)"{-h,--help}'[display usage information]' \
   \*{-v,--verbose}"[verbose mode (repeat to increase)]" && ret=0
 
 plug=${(v)opt_args[(i)-(t|-type)]:-module}
@@ -220,11 +223,18 @@ case $state in
     fi
   ;;
   galaxy)
+    ign=''
     curcontext="${curcontext%:*}-${line[1]}:"
-    args=()
+    (( $#words > 2 )) && ign='!'
+    args=(
+      "${ign}(-)"{-h,--help}'[display usage information]'
+      '(-c --ignore-certs)'{-c,--ignore-certs}'[ignore SSL certificate validation errors]'
+      '(-s --server)'{-s+,--server=}'[specify API server destination]:server:_hosts'
+      {-v,--verbose}'[verbose mode]'
+    )
     case $line[1] in
       info|search|list|remove|install)
-	args=( '(-p --roles-path)'{-p,--roles-path}'[specify location of roles]:path:_directories' )
+	args+=( '(-p --roles-path)'{-p,--roles-path}'[specify location of roles]:path:_directories' )
       ;|
       info|init)
 	args+=( "--offline[don't query the galaxy API]" )
@@ -241,22 +251,23 @@ case $state in
 	)
       ;;
       setup)
-	args=(
+	args+=(
 	  '--list[list integrations]'
 	  '--remove=[remove integration]:integration id'
 	)
       ;;
       init)
 	args+=(
-	  '--container-enabled[initialize the skeleton role with default contents for a Container Enabled role]'
           '--init-path=[specify path in which the skeleton role will be created]:path:_directories'
           '--role-skeleton=[specify path to a role skeleton that the new role should be based upon]'
+	  '--type=[initialize using an alternate role type]:role type:(container apb network)'
 	)
       ;;
       install)
 	args+=(
 	  '(-n --no-deps)'{-n,--no-deps}"[don’t download roles listed as dependencies]"
 	  '(-i --ignore-errors)'{-i,--ignore-errors}'[ignore errors and continue with the next specified role]'
+	  '(-g --keep-scm-meta)'{-g,--keep-scm-meta}'[use tar instead of the scm archive option when packaging the role]'
 	  '(-r --role-file)'{-r+,--role-file=}'[specify file containing a list of roles to be imported]:file:_files'
         )
       ;;
diff --git a/Completion/Unix/Command/_column b/Completion/Unix/Command/_column
index cb67fef37..a81684dba 100644
--- a/Completion/Unix/Command/_column
+++ b/Completion/Unix/Command/_column
@@ -9,6 +9,7 @@ case $OSTYPE in
   linux-gnu)
     args=(
       '(info json -c --output-width)'{-c+,--output-width=}'[format output to fit display of specified width]:width'
+      '(info)'{-L,--table-empty-lines}"[don't ignore empty lines]"
       + fill
       '(info table text json -x --fillrows)'{-x,--fillrows}'[fill rows before filling columns]'
       + table
diff --git a/Completion/Unix/Command/_dhclient b/Completion/Unix/Command/_dhclient
index beaab5e2d..ee309e1fd 100644
--- a/Completion/Unix/Command/_dhclient
+++ b/Completion/Unix/Command/_dhclient
@@ -22,6 +22,7 @@ case $OSTYPE in
       '-i+[ignore values provided by leases for specified options]:options'
       '-L+[specify file to write option data too]:file:_files'
       "-n[don't configure any interfaces]"
+      '-r[release the current lease back to the server it came from]'
       '-v[verbose log messages]'
     )
   ;;
diff --git a/Completion/Unix/Command/_dmidecode b/Completion/Unix/Command/_dmidecode
index eb273586f..047b74f6d 100644
--- a/Completion/Unix/Command/_dmidecode
+++ b/Completion/Unix/Command/_dmidecode
@@ -4,10 +4,11 @@ _arguments -s \
   '(-d --dev-mem --from-dump)'{-d+,--dev-mem=}'[read memory from specified file]:memory device [/dev/mem]:_files' \
   '(-)'{-h,--help}'[display usage information]' \
   '(-q --quiet -u --dump)'{-q,--quiet}'[be less verbose]' \
-  '(--type -u --dump --dump-bin -s --string)'{-s+,--string=}':DMI string:(bios-vendor bios-version bios-release-date system-manufacturer system-product-name system-version system-serial-number system-uuid baseboard-manufacturer baseboard-product-name baseboard-version baseboard-serial-number baseboard-asset-tag chassis-manufacturer chassis-type chassis-version chassis-serial-number chassis-asset-tag processor-family processor-manufacturer processor-version processor-frequency)' \
-  '(-s --string --dump-bin)*'{-t+,--type=}'[only display entries of specified type]:entry type:(bios system baseboard chassis processor memory cache connector slot)' \
+  '(-t --type -H --handle -u --dump --dump-bin -s --string)'{-s+,--string=}'[only display value of specified DMI string]:DMI string:(bios-vendor bios-version bios-release-date system-manufacturer system-product-name system-version system-serial-number system-uuid baseboard-manufacturer baseboard-product-name baseboard-version baseboard-serial-number baseboard-asset-tag chassis-manufacturer chassis-type chassis-version chassis-serial-number chassis-asset-tag processor-family processor-manufacturer processor-version processor-frequency)' \
+  '(-s --string -H --handle --dump-bin)*'{-t+,--type=}'[only display entries of specified type]:entry type:(bios system baseboard chassis processor memory cache connector slot)' \
+  '(-s --string -t --type -H --handle --dump-bin)'{-H,--handle=}'[only display the entry of specified handle]:handle' \
   '(-q --quiet -u --dump -s --string)'{-u,--dump}"[don't decode entries]" \
-  '--dump-bin=[dump DMI data to a binary file]:file:_files' \
+  '(-s --string -t --type -H --handle)--dump-bin=[dump DMI data to a binary file]:file:_files' \
   '(-d --dev-mem)--from-dump=[read DMI data from a binary file]:file:_files' \
   "--no-sysfs[don't attempt to read DMI data from sysfs files]" \
   '--oem-string=[only display the value of the specified OEM string]:OEM string number' \
diff --git a/Completion/Unix/Command/_jq b/Completion/Unix/Command/_jq
index 4ff05dab4..b8e41dd66 100644
--- a/Completion/Unix/Command/_jq
+++ b/Completion/Unix/Command/_jq
@@ -27,8 +27,11 @@ _arguments -S -s : \
   '(-f --from-file)'{-f,--from-file}'[read filter from file]:_files' \
   '-L+[prepend a directory to the module search path]:_directories' \
   '(-e --exit-status)'{-e,--exit-status}'[report "false" and "null" results via exit code]' \
-  '*--arg[pre-set a variable to a string]: :_guard "|[A-Za-z][A-Za-z0-9]#" "variable name":value (string): ' \
-  '*--argjson[pre-set a variable to an object]: :_guard "|[A-Za-z][A-Za-z0-9]#" "variable name":value (JSON): ' \
-  '*--slurpfile[pre-set a variable to contents of a file]: :_guard "|[A-Za-z][A-Za-z0-9]#" "variable name":value (filename of file containing JSON):_files' \
+  '*--arg[pre-set a variable to a string]:variable name: :value (string)' \
+  '*--argjson[pre-set a variable to an object]:variable name: :value (JSON)' \
+  '*--slurpfile[pre-set a variable to an array of JSON texts read from a file]:variable name: :file:_files' \
+  '*--rawfile[pre-set a variable to the contents of a file]:variable name: :file:_files' \
+  '--args[remaining arguments are string arguments, not files]' \
+  '--jsonargs[remaining arguments are JSON arguments, not files]' \
   "1: :_guard '|[^-]' filter" \
   "*: :_files"
diff --git a/Completion/Unix/Command/_links b/Completion/Unix/Command/_links
index 34bb64560..8bb9fee1c 100644
--- a/Completion/Unix/Command/_links
+++ b/Completion/Unix/Command/_links
@@ -1,30 +1,121 @@
-#compdef links
+#compdef links links2
 
-local curcontext="$curcontext" state line ret=1
+local curcontext="$curcontext" state line ign ret=1
 typeset -A opt_args
 
+(( $#words > 2 )) && ign='!'
 _arguments -C \
-  '(-help)-anonymous[restrict links so that it can run on an anonymous account]' \
-  '(-help)-assume-codepage[specify default codepage to use]:codepage' \
-  '(-help)-async-dns[asynchronous DNS resolver]:bool:((0\:on 1\:off))' \
-  '(-help)-download-dir[default download directory]:_files -/' \
-  '(-help)-driver[graphics driver to use]:graphics driver:->graphics_drivers' \
-  '(-help)-dump[dump the page as pure text]' \
-  '(-help)-format-cache-size[number of formatted document pages cached]:pages' \
-  '(-help)-ftp-proxy[specify ftp proxy server]:proxy:->proxies' \
-  '(-help)-g[run in graphics mode rather than plain text mode]' \
-  '-help[prints the help screen]' \
-  '(-help)-http-proxy[specify web proxy server]:proxy:->proxies' \
-  '(-help)-image-cache-size[image cache memory]:memory (kilobytes)' \
-  '(-help)-max-connections[maximum number of concurrent connections]:connections' \
-  '(-help)-max-connections-to-host[maximum number of concurrent connection to a given host]:connections' \
-  '(-help)-memory-cache-size[cache memory]:kilobytes' \
-  '(-help)-no-connect[runs links as a separate instance]' \
-  '(-help)-receive-timeout[timeout on receive]:timeout (seconds)' \
-  '(-help)-retries[number of retries]:retries' \
-  '(-help)-source[dump the source page]' \
-  '(-help)-unrestartable-receive-timeout[timeout on non restartable connections]:timeout (seconds)' \
-  '(-help)-version[prints the links version number and exit]' \
+  "${ign}-help[prints the help screen]" \
+  "${ign}(- :)-version[prints the links version number and exit]" \
+  "${ign}(- 1)-lookup[do hostname lookup]:hostname:_hosts" \
+  '-g[run in graphics mode rather than plain text mode]' '!-no-g' \
+  '-driver[graphics driver to use]:graphics driver:->graphics_drivers' \
+  '-mode[specify graphics mode]:graphics mode' \
+  '-display[specify X display]:display:_x_display' \
+  '-force-html[treat files with unknown type as html rather than text]' \
+  '-source[dump the source page]' \
+  '-dump[dump the page as pure text]' \
+  '-width[specify screen width for formatting with -dump]:width' \
+  '-codepage[convert output to specified character set with -dump]:codepage' \
+  '-anonymous[restrict links so that it can run on an anonymous account]' \
+  '-no-connect[runs links as a separate instance]' \
+  '-download-dir[default download directory]:_files -/' \
+  '-language[set user interface language]:language' \
+  '-max-connections[specify maximum number of concurrent connections]:connections [10]' \
+  '-max-connections-to-host[maximum number of concurrent connection to a given host]:connections [2]' \
+  '-retries[number of retries]:retries [3]' \
+  '-receive-timeout[timeout on receive]:timeout (seconds) [120]' \
+  '-unrestartable-receive-timeout[timeout on non-restartable connections]:timeout (seconds) [600]' \
+  '-timeout-when-trying-multiple-addresses[specify timeout for connection when trying multiple addresses]:timeout (seconds)' \
+  '-bind-address[use a specific local IP address]:IP address' \
+  '-bind-address-ipv6[use a specific local IPv6 address]:IPv6 address' \
+  "-no-libevent[don't use libevent library]" \
+  "-no-openmp[don't use OpenMP]" \
+  '-async-dns[asynchronous DNS resolver]:enable:((1\:on 0\:off))' \
+  '-download-utime[set time of downloaded files to last modification time reported by server]:enable:((1\:on 0\:off))' \
+  '-format-cache-size[number of formatted document pages cached]:pages [5]' \
+  '-memory-cache-size[cache memory]:size (bytes) [1048576]' \
+  '-image-cache-size[image cache memory]:size (bytes) [1048576]' \
+  '-font-cache-size[specify font cache size]:size (bytes) [2097152]' \
+  "-aggressive-cache[cache everything regardless of server's caching recomendations]:enable [1]:((1\\:on 0\\:off))" \
+  '-address-preference[specify IP version preference]:preference:((
+    0\:system\ default
+    1\:prefer\ IPv4
+    2\:prefer\ IPv6
+    3\:use\ only\ IPv4
+    4\:use\ only\ IPv6
+  ))' \
+  '-http-proxy[specify web proxy server]:proxy:->proxies' \
+  '-ftp-proxy[specify ftp proxy server]:proxy:->proxies' \
+  '-https-proxy[specify https web proxy server]:proxy:->proxies' \
+  '-socks-proxy[specify socks4a proxy server]:proxy:->sproxies' \
+  '-append-text-to-dns-lookups[append text to dns lookups; useful for specifying fixed tor exit node]:text' \
+  '-no-proxy-domains[use no proxy for specified domains]:domain list' \
+  '-only-proxies[only initiate connections via proxy]:enable:((0\:off 1\:on))' \
+  '-ssl.certificates[specify handling of invalid signatures]:handling:((0\:ignore 1\:warn 2\:reject))' \
+  '-ssl.builtin-certificates[specify certificates to use]:certificates:((0\:system 1\:builtin))' \
+  '-ssl.client-cert-key[specify user private key for client certificate authentication]:PEM file:_files' \
+  '-ssl.client-cert-crt[specify user certificate for client certificate authentication]:PEM file:_files' \
+  '-ssl.client-cert-password[specify password for the user private key]:password' \
+  '-http-bugs.http10[specify HTTP version]:protocol [0]:((1\:force\ only\ HTTP\ 1.0 0\:use\ both\ HTTP\ 1.0\ and\ 1.1))' \
+  '-http-bugs.allow-blacklist[use list of servers with broken HTTP/1.1 support]:allow [1]:(1 0)' \
+  '-http-bugs.bug-no-accept-charset[specify sending of Accept-Charset field of HTTP header]:send [0]:(1 0)' \
+  '-http-bugs.no-compression[advertise HTTP compression support]:advertise compression [0]:((0\:yes 1\:no))' \
+  '-http-bugs.retry-internal-errors[retry on internal server errors (50x)]:retry [0]:((1\:yes 0\:no))' \
+  '-http.fake-firefox[fake Firefox in the HTTP header]:enable [0]:((0\:no 1\:yes))' \
+  '-http.do-not-track[send do not track request in the HTTP header]:enable [0]:(1 0)' \
+  "-http.referer[control sending of referer URL in requests]:referer [4]:((
+    0\:don\'t\ send 1\:'send requested URL' 2\:'fake referer' 3\:'send real'
+    4\:'send real only to the same server'
+  ))" \
+  '-http.fake-user-agent[specify fake user agent value]:string' \
+  '-http.extra-header[specify extra string added to HTTP header]:string' \
+  '-ftp.anonymous-password[specify password for anonymous ftp access]:password' \
+  '-ftp.use-passive[use ftp PASV command to bypass firewalls]:enable;(0 1)' \
+  '-ftp.use-eprt-epsv[use EPRT and EPSV commands instead of PORT and PASV]:enable:(0 1)' \
+  '-ftp.set-iptos[set IP type-of-service to high throughput on ftp connections]:enable:(0 1)' \
+  '-smb.allow-hyperlinks-to-smb[allow hyperlinks to SMB protocol]:enable:(0 1)' \
+  '-menu-font-size[specify size of font in menu]:size' \
+  '-menu-background-color[specify menu background color in graphics mode]:color (0xRRGGBB)' \
+  '-menu-foreground-color[specify menu foreground color in graphics mode]:color (0xRRGGBB)' \
+  '-scroll-bar-area-color[set colour of scroll bar area]:colour (0xRRGGBB)' \
+  '-scroll-bar-bar-color[set colour of scroll bar]:colour (0xRRGGBB)' \
+  '-scroll-bar-frame-color[set colour of scroll bar frame]:colour (0xRRGGBB)' \
+  '-bookmarks-file[specify file to store bookmarks]:file:_files' \
+  '-bookmarks-codepage[specify character set of bookmarks file]:character set' \
+  '-save-url-history[save URL history on exit]:enable:(0 1)' \
+  '-display-red-gamma[specify red gamma of display]:gamma [2.2]' \
+  '-display-green-gamma[specify green gamma of display]:gamma [2.2]' \
+  '-display-blue-gamma[specify blue gamma of display]:gamma [2.2]' \
+  '-user-gamma[specify additional gamma]:gamma [1]' \
+  '-bfu-aspect[display aspect ration]' \
+  '-dither-letters[do letter dithering]:enable:(0 1)' \
+  '-display-optimize[optimize for display type]:display:((0\:CRT 1\:LCD\ RGB 2\:LCD\ BGR))' \
+  '-gamma-correction[specify type of gamma correction]:gamma correction:((0\:8-bit 1\:16-bit 2\:auto\ detect))' \
+  '-overwrite-instead-of-scroll[overwrite the screen instead of scrolling it]:enable:(0 1)' \
+  '-html-assume-codepage[specify codepage to use if unspecified by server]:codepage' \
+  '-html-hard-assume[always use character set from -html-assume-codepage]:enable:(0 1)' \
+  '-html-tables[render tables]:enable:(0 1)' \
+  '-html-frames[render frames]:enable:(0 1)' \
+  '-html-images[display links to unnamed images as \[IMG\]]:enable:(0 1)' \
+  '-html-image-names[display filename of an image]:enable:(0 1)' \
+  '-html-display-images[display images in graphics mode]:enable:(0 1)' \
+  '-html-image-scale[sScale images in graphics mode]:scaling (percent)' \
+  '-html-bare-image-autoscale[autoscale images displayed on full screen]:enable:(0 1)' \
+  '-html-numbered-links[number links in text mode allowing quick selection]:enable:(0 1)' \
+  '-html-table-order[set ordering to walk tables]:ordering:((0\:rows 1\:columns))' \
+  '-html-auto-refresh[process refresh or display link]:refresh:(1 0)' \
+  '-html-target-in-new-window[allow opening new windows from html]' \
+  '-html-margin[specify margin]:margin (spaces)' \
+  '-html-user-font-size[specify font size in graphics mode]:size' \
+  '-html-t-text-color[specify text color in text mode]:color (0..15)' \
+  '-html-t-link-color[specify link color in text mode]:color (0..15)' \
+  '-html-t-background-color[specify background color in text mode]:color (0..15)' \
+  '-html-t-ignore-document-color[ignore colors from HTML in text mode]:ignore:(0 1)' \
+  '-html-g-text-color[specify text color in graphics mode]:color (0xRRGGBB)' \
+  '-html-g-link-color[specify link color in graphics mode]:color (0xRRGGBB)' \
+  '-html-g-background-color[specify background color in graphics mode]:color (0xRRGGBB)' \
+  '-html-g-ignore-document-color[ignore colors from HTML in graphics mode]:ignore:(0 1)' \
   ':URL:->html' && ret=0
 
 case $state in
@@ -33,9 +124,15 @@ case $state in
   ;;
   graphics_drivers)
     local -a vals
-    vals=( ${=${${${(f)"$(_call_program links-graphics-drivers links -driver help 2>&1)"}[-1]}//','/''}} )
+    vals=( ${=${${${(f)"$(_call_program links-graphics-drivers $words[1] -driver help 2>&1)"}[-1]}//','/''}} )
     _describe -t links-graphics-drivers 'graphics driver' vals && ret=0
   ;;
+  sproxies)
+    if ! compset -P '*@'; then
+      _message -e users 'user id'
+      return
+    fi
+  ;&
   proxies)
     local suf=-S:
     if compset -P '*:'; then
diff --git a/Completion/Unix/Command/_luarocks b/Completion/Unix/Command/_luarocks
index 363cedc8d..30bda1a9a 100644
--- a/Completion/Unix/Command/_luarocks
+++ b/Completion/Unix/Command/_luarocks
@@ -9,6 +9,7 @@ __luarocks_command(){
     doc:'show documentation for an installed rock'
     download:'download a specific rock file from a rocks server'
     help:'help on commands'
+    init:'initialize a directory for a Lua project using LuaRocks'
     install:'install a rock'
     lint:'check syntax of a rockspec'
     list:'list currently installed rocks'
@@ -20,13 +21,27 @@ __luarocks_command(){
     remove:'uninstall a rock'
     search:'query the LuaRocks servers'
     show:'show information about an installed rock'
+    test:'run the test suite in the current directory'
     unpack:'unpack the contents of a rock'
     upload:'upload a rockspec to the public rocks repository'
+    which:'indicate which file corresponds to a given module name'
     write_rockspec:'write a template for a rockspec file'
   )
   _describe -t commands 'command' commands "$@"
 }
+
 local option_deps_modes='--deps-mode=[specify how to handle dependencies]:mode:__luarocks_deps_modes'
+
+local rockspec_options=(
+  '--license=[specify a license string]:license (e.g. "MIT/X11" or "GNU GPL v3")'
+  '--summary=[a short one-line description summary]:summary:{_message -e "short summary of the rock"}'
+  '--detailed=[a longer description string]:detailed_text:{_message -e "detailed description of the rock"}'
+  '--homepage=[project homepage]:URL:_urls'
+  '--lua-versions=[specify supported Lua versions]:lua version:_sequence compadd - 5.{1,2,3,4}'
+  '--rockspec-format=[rockspec format version, such as "1.0" or "1.1"]:VER: '
+  '--lib=[comma separated list of C library files to link to]:library files'
+)
+
 (( $+functions[__luarocks_deps_modes] )) ||
 __luarocks_deps_modes(){
   local modes=(
@@ -78,10 +93,7 @@ __luarocks_rock_version(){
     i=$(( i + 1 ))
   done
 }
-(( $+functions[__luarocks_lua_versions] )) ||
-__luarocks_lua_versions(){
-  _values -s , 5.3 5.2 5.1
-}
+
 (( $+functions[___luarocks_manually_store_cache_configs_paths] )) ||
 ___luarocks_manually_store_cache_configs_paths(){
   user_config_path="$(_call_program user_config_path luarocks config --user-config)"
@@ -397,6 +409,15 @@ _luarocks_download(){
 _luarocks_help(){
   _arguments '1: :__luarocks_command'
 }
+
+(( $+functions[_luarocks_init] )) ||
+_luarocks_init(){
+  _arguments $rockspec_options \
+    '--reset[regenerate files if they already exist]' \
+    '1: :_guard "^-*" "name"'\
+    '2: :_guard "^-*" "version"'
+}
+
 # arguments:
 # - must: .rockspec file / external rock
 # - optional: version
@@ -453,11 +474,11 @@ _luarocks_pack(){
 # arguments:
 # NOTE: receives only options
 local path_command_options=(
-  '--bin[adds the system path to the output]'
-  '--append[appends the paths to the existing paths]'
-  '--lr-path[exports the Lua path (not formatted as shell command)]'
-  '--lr-cpath[exports the Lua cpath (not formatted as shell command)]'
-  '--lr-bin[exports the system path (not formatted as shell command)]'
+  "--no-bin[don't export the PATH variable]"
+  '--append[append the paths to the existing paths]'
+  '--lr-path[export the Lua path (not formatted as shell command)]'
+  '--lr-cpath[export the Lua cpath (not formatted as shell command)]'
+  '--lr-bin[export the system path (not formatted as shell command)]'
 )
 (( $+functions[_luarocks_path] )) ||
 _luarocks_path(){
@@ -495,13 +516,14 @@ _luarocks_remove(){
 local search_command_options=(
   '--source[return only rockspecs and source rocks]'
   '--binary[return only pure Lua and binary rocks (rocks that can be used with the "install" command without requiring a C toolchain)]'
-  '--all[list all contents of the server that are suitable to this platform, do not filter by name]'
+  "--all[list all contents of the server that are suitable for this platform, don't filter by name]"
+  '--porcelain[produce machine readable output]'
 )
 (( $+functions[_luarocks_search] )) ||
 _luarocks_search(){
   _arguments \
     "${search_command_options[@]}" \
-    '*:SEARCH QUERY:'
+    '*: :_guard "^--*" "search query"'
 }
 # arguments:
 # - must: installed rock
@@ -509,6 +531,8 @@ local show_command_options=(
   '--home[home page of project]'
   '--modules[all modules provided by this package as used by require()]'
   '--deps[packages this package depends on]'
+  '--build-deps[show build-only dependencies for package]'
+  '--test-deps[show dependencies for testing package]'
   '--rockspec[the full path of the rockspec file]'
   '--mversion[the package version]'
   '--rock-tree[local tree where rock is installed]'
@@ -520,6 +544,16 @@ _luarocks_show(){
     "${show_command_options[@]}" \
     "1: :{__luarocks_rock 'installed' "${opt_args[--tree]}"}"
 }
+
+(( $+functions[_luarocks_test] )) ||
+_luarocks_test(){
+  _arguments $option_deps_modes \
+    '--test-type=[specify the test suite type manually]:test suite type' \
+    '--reset[regenerate files if they already exist]' \
+    '1:rockspec:__luarocks_rock' \
+    '*:arg'
+}
+
 # arguments:
 # - must: rockpack file / external rock
 # - optional: version (only when chossing external rock)
@@ -535,8 +569,9 @@ _luarocks_unpack(){
 # arguments:
 # - must: rockspec file
 local upload_command_options=(
-  '--skip-pack[do not pack and send source rock]'
-  '--api-key=[give it an API key]:KEY:{_message "api key"}'
+  "--skip-pack[don't pack and send source rock]"
+  '(--temp-key)--api-key=[use and save specified API key]:api key'
+  '(--api-key)--temp-key=[use specified temporary API key in this invocation only]:api key'
   '--force[replace existing rockspec if the same revision of a module already exists]'
 )
 (( $+functions[_luarocks_upload] )) ||
@@ -545,26 +580,18 @@ _luarocks_upload(){
     "${upload_command_options[@]}" \
     '1: :{__luarocks_rock "rockspec"}'
 }
-# arguments:
-# - optional: name
-# - optional: version
-# - optional: URL / PATH
-# receives as an argument a name and a version with optionally a URL/PATH
-local write_rockspec_command_options=(
-  '--output=[write the rockspec with the given filename]:FILE:_files'
-  '--license=[specify a license string]:license (e.g. "MIT/X11" or "GNU GPL v3")'
-  '--summary=[a short one-line description summary]:summary:{_message -e "short summary of the rock"}'
-  '--detailed=[a longer description string]:detailed_text:{_message -e "detailed description of the rock"}'
-  '--homepage=[project homepage]:URL:_urls'
-  '--lua-version=[supported Lua versions]:LUA_VER:__luarocks_lua_versions'
-  '--rockspec-format=[rockspec format version, such as "1.0" or "1.1"]:VER: '
-  '--tag=[tag to use. Will attempt to extract version number from it]:tag:__git_tag'
-  '--lib=[comma separated list of C library files to link to]:library files'
-)
+
+(( $+functions[_luarocks_which] )) ||
+_luarocks_which(){
+  _message -e modules 'module name'
+}
+
 (( $+functions[_luarocks_write_rockspec] )) ||
 _luarocks_write_rockspec(){
   _arguments -A "-*" \
-    "${write_rockspec_command_options[@]}" \
+    "${rockspec_options[@]}" \
+    '--output=[write the rockspec with the given file]:file:_files' \
+    '--tag=[specify tag to use. Will attempt to extract version number from it]:tag:__git_tag' \
     '1:: :{_message "new rock name"}' \
     '2:: :{__luarocks_rock_version "new_rock"}' \
     '3:: :_urls'
@@ -572,13 +599,15 @@ _luarocks_write_rockspec(){
 
 # The real thing
 _arguments -C \
-  '(--server --only-server)--server=[fetch rocks/rockspecs from this server]:HOST:_hosts' \
-  '(--server --only-server)--only-server=[fetch rocks/rockspecs from this server only]:HOST:_hosts' \
+  '--dev[enable the sub-repositories in rocks servers]' \
+  '(--server --only-server)--server=[fetch rocks/rockspecs from specified server]:host:_hosts' \
+  '(--server --only-server)--only-server=[fetch rocks/rockspecs from specified server only]:host:_hosts' \
   '--only-sources=[restrict downloads to paths matching the given URL]:URL:_urls' \
-  '--tree=[which tree to operate on]:TREE:{_files -/}' \
+  '--lua-dir=[specify location of lua installation]:path:_directories' \
+  '--tree=[specify which tree to operate on]:tree:_directories' \
   '--local[use the tree in the user'"'"'s home directory]' \
   '--verbose[display verbose output of commands executed]' \
-  '--timeout=[timeout on network operations]:SECONDS:{_message "timeout (seconds)"}' \
+  '--timeout=[specify timeout for network operations]:timeout (seconds)' \
   '1: :__luarocks_command' \
   '*::arg:->args'
 
diff --git a/Completion/Unix/Command/_mpc b/Completion/Unix/Command/_mpc
index 4f200c69e..0f292ab4c 100644
--- a/Completion/Unix/Command/_mpc
+++ b/Completion/Unix/Command/_mpc
@@ -55,6 +55,7 @@ _mpc_command() {
     playlist:"print the current playlist"
     prev:"play the previous song in the current playlist"
     prio:"change song priorities in the queue"
+    queued:"show the next queued song"
     random:"toggle random mode, or specify state"
     repeat:"toggle repeat mode, or specify state"
     single:"toggle single mode, or specify state"
@@ -69,6 +70,7 @@ _mpc_command() {
     findadd:"find songs and add them to the current playlist"
     list:"list all tags of given type"
     seek:"seek to the position specified in percent"
+    seekthrough:"seek by an amount of time within the song and playlist"
     shuffle:"shuffle the current playlist"
     stats:"display statistics about MPD"
     stop:"stop the currently playing playlists"
@@ -82,6 +84,8 @@ _mpc_command() {
     waitmessage:"wait for at least one message on the specified channel"
     subscribe:"subscribe to the specified channel and continuously receive messages"
     sticker:"sticker management"
+    mount:"list mounts or add a new mount"
+    unmount:"remove a mount"
   )
 
   if (( CURRENT == 1 )); then
@@ -209,7 +213,11 @@ _mpc_play() {
 }
 
 _mpc_seek() {
-  _message "floating point percent value"
+  _message -e position 'position ([+-][HH:MM:SS]|<0-100>%%)'
+}
+
+_mpc_seekthrough() {
+  _message -e position 'position ([+-][HH:MM:SS])'
 }
 
 _mpc_enable() {
@@ -349,6 +357,7 @@ _arguments -C \
   '(-p --port)'{-p,--port=}'[connect to server port]:port' \
   '(-f --format)'{-f,--format=}'[specify the format of song display]:format string:->formats' \
   '(-w --wait)'{-w,--wait}'[wait for operation to finish (e.g. database update)]' \
+  '(-r --range)'{-r,--range=}'[operate on a range (e.g. when loading a playlist)]:<start>\:<end>' \
   '*::mpc command:_mpc_command' && ret=0
 
 if [[ $state = formats ]]; then
diff --git a/Completion/Unix/Command/_samba b/Completion/Unix/Command/_samba
index 9a2fea9d6..775543794 100644
--- a/Completion/Unix/Command/_samba
+++ b/Completion/Unix/Command/_samba
@@ -55,6 +55,7 @@ case $service in
       '(-t --timeout)'{-t+,--timeout=}'[change the per-operation timeout]:timeout (seconds)'
       '(2 -p --port)'{-p+,--port=}'[specify tcp port]:tcp port'
       '(-g --grepable)'{-g,--grepable}'[produce grepable output]'
+      '(-q --quiet)'{-q,--quiet}'[suppress help message]'
       '(-B --browse)'{-B,--browse}'[browse SMB servers using DNS]'
       '(2 -d --debuglevel)'{-d+,--debuglevel=}'[specify debug level]:debug level:(0 1 2 3 4 5 6 7 8 9 10)'
       '(2 -O --socket-options)'{-O+,--socket-options=}'[specify socket options]:socket options'
diff --git a/Completion/Unix/Command/_script b/Completion/Unix/Command/_script
index e6c104d2c..436c9661b 100644
--- a/Completion/Unix/Command/_script
+++ b/Completion/Unix/Command/_script
@@ -24,6 +24,7 @@ case $OSTYPE in
       "(-e --return $hlp)"{-e,--return}'[return exit status of the child process]'
       "(-f --flush $hlp)"{-f,--flush}'[flush output after each write]'
       "($hlp)--force[use output file even when it is a link]"
+      '(-o --output-limit)'{-o+,--output-limit=}'[terminate if output files exceed specified size]:size (bytes)'
       "(-q --quiet $hlp)"{-q,--quiet}'[be quiet]'
       "(-t --timing $hlp)"{-t-,--timing=-}'[output timing data]::timing file:_files'
       '(- 1)'{-h,--help}'[display help information]'
diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh
index 9c827d655..d1bd8f04b 100644
--- a/Completion/Unix/Command/_ssh
+++ b/Completion/Unix/Command/_ssh
@@ -56,7 +56,7 @@ _ssh () {
       '(-v)*-q[quiet operation]' \
       '*-R+[specify remote port forwarding]:remote port forwarding:->forward' \
       '-S+[specify location of control socket for connection sharing]:path to control socket:_files' \
-      '-Q+[query parameters]:parameter type:((cipher\:"supported symmetric ciphers" cipher-auth\:"supported symmetric ciphers that support authenticated encryption" mac\:"supported message integrity codes" kex\:"key exchange algorithms" key\:"key types" protocol-version\:"supported SSH protocol versions"))' \
+      '-Q+[query parameters]:query option:((cipher\:"supported symmetric ciphers" cipher-auth\:"supported symmetric ciphers that support authenticated encryption" mac\:"supported message integrity codes" kex\:"key exchange algorithms" key\:"key types" key-cert\:"certificate key types" key-plain\:"non-certificate key types" protocol-version\:"supported SSH protocol versions" sig\:"supported signature algorithms" help\:"show supported queries"))' \
       '-s[invoke subsystem]' \
       '(-t)-T[disable pseudo-tty allocation]' \
       '(-T)-t[force pseudo-tty allocation]' \
@@ -452,6 +452,7 @@ _ssh () {
                 CanonicalizeHostname \
                 CanonicalizeMaxDots \
                 CanonicalizePermittedCNAMEs \
+                CASignatureAlgorithms \
                 CertificateFile \
                 ChallengeResponseAuthentication \
                 CheckHostIP \
diff --git a/Completion/Unix/Command/_tmux b/Completion/Unix/Command/_tmux
index ae3446a08..0e8fe2223 100644
--- a/Completion/Unix/Command/_tmux
+++ b/Completion/Unix/Command/_tmux
@@ -304,7 +304,7 @@ _tmux-display-message() {
   _arguments -s -S \
     '-c+[specify target client]:client:__tmux-clients' \
     '-p[print message to stdout]' \
-    '-t+[specify target client]:client:__tmux-clients' \
+    '-t+[specify target pane]:pane:__tmux-panes' \
     '-F+[specify output format]:format:__tmux-formats' \
     ':message'
 }
@@ -809,8 +809,9 @@ _tmux-set-window-option() {
 _tmux-set-hook() {
   [[ -n ${tmux_describe} ]] && print "set a hook to a command" && return
   _arguments -s \
-    '-g[add hook to global list]' \
-    '-u[unset a hook]' \
+    '(-R)-g[add hook to global list]' \
+    '(-g -u)-R[run hook immediately]' \
+    '(-R)-u[unset a hook]' \
     '-t+[specify target session]:session:__tmux-sessions' \
     ':hook name:_tmux_hooks' \
     '*:::command:= _tmux'