mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 22:11:54 +02:00
44587: completion option updates
This commit is contained in:
parent
c6254f2a93
commit
359a8fce00
18 changed files with 211 additions and 63 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2019-08-19 Oliver Kiddle <okiddle@yahoo.co.uk>
|
||||
|
||||
* 44587: Completion/Linux/Command/_btrfs,
|
||||
Completion/Linux/Command/_networkmanager,
|
||||
Completion/Linux/Command/_ss, Completion/Linux/Command/_sshfs,
|
||||
Completion/Linux/Command/_strace, Completion/Unix/Command/_ansible,
|
||||
Completion/Unix/Command/_awk, Completion/Unix/Command/_gcore,
|
||||
Completion/Unix/Command/_gnutls, Completion/Unix/Command/_ifconfig,
|
||||
Completion/Unix/Command/_less, Completion/Unix/Command/_ln,
|
||||
Completion/Unix/Command/_lsof, Completion/Unix/Command/_mpc,
|
||||
Completion/Unix/Command/_rclone, Completion/Unix/Command/_sqlite,
|
||||
Completion/Unix/Command/_tmux: completion option updates
|
||||
|
||||
2019-08-17 dana <dana@dana.is>
|
||||
|
||||
* 44675: Completion/Unix/Command/_find: Fix return status
|
||||
|
|
|
@ -172,11 +172,17 @@ while (( $#state )); do
|
|||
)
|
||||
[[ ${${(P)group}[cmd]} == add ]] &&
|
||||
args+=(
|
||||
{-K,--nodiscard}"[don't perform discard]"
|
||||
{-K,--nodiscard}"[don't perform whole device TRIM]"
|
||||
{-f,--force}'[force overwrite of existing filesystem]'
|
||||
)
|
||||
;;
|
||||
device:scan) args+=( '(1 -)'{-d,--all-devices}'[scan all devices in /dev]' '1:device:_files -g "*(-%)"' );;
|
||||
device:scan)
|
||||
args+=(
|
||||
'(-)'{-u,--forget}'[unregister all stale devices or a given device]'
|
||||
'(1 -)'{-d,--all-devices}'[enumerate and register all devices]'
|
||||
'1:device:_files -g "*(-%)"'
|
||||
)
|
||||
;;
|
||||
device:stats)
|
||||
args+=(
|
||||
'(-c --check)'{-c,--check}'[return non-zero if any stat counter is not zero]'
|
||||
|
@ -214,7 +220,7 @@ while (( $#state )); do
|
|||
'(-d -s)-m+[act on metadata chunks]:filter:->filters'
|
||||
'(-d -m)-s+[act on system chunks (only under -f)]:filters:->filters'
|
||||
'-v[verbose mode]'
|
||||
'-f[force reducing of metadata integrity]'
|
||||
'-f[force a reduction of metadata integrity]'
|
||||
"--full-balance[don't print warning and don't delay start]"
|
||||
'(--background --bg)'{--background,--bg}'[run balance operation asynchronously in the background]'
|
||||
'1:path:_files -/'
|
||||
|
@ -286,7 +292,7 @@ while (( $#state )); do
|
|||
'(-r --roots)'{-r,--roots}'[print only short root node info]'
|
||||
'(-R --backups)'{-R,--backups}'[same as --roots plus print backup root info]'
|
||||
'(-u --uuid)'{-u,--uuid}'[print only the uuid tree]'
|
||||
'(-b --block)'{-b,--block}'[print info from the specified block only]:block'
|
||||
\*{-b,--block}'[print info from the specified block only]:block number'
|
||||
'(-t --tree)'{-t,--tree}'[print only tree with the given id (string or number)]:tree id'
|
||||
'--follow[use with -b, to show all children tree blocks of the block]'
|
||||
)
|
||||
|
@ -366,6 +372,9 @@ while (( $#state )); do
|
|||
'2:path:_files -/'
|
||||
)
|
||||
;;
|
||||
send|receive)
|
||||
args+=( '(-q --quiet)'{-q,--quiet}'[suppress all messages except errors]' )
|
||||
;|
|
||||
send)
|
||||
args+=(
|
||||
'*-v[verbose mode]'
|
||||
|
@ -375,7 +384,6 @@ while (( $#state )); do
|
|||
'-f[specify output file]:file:_files'
|
||||
'--no-data[send in NO_FILE_DATA mode]'
|
||||
'(-v --verbose)'{-v,--verbose}'[enable verbose output]'
|
||||
'(-q --quiet)'{-q,--quiet}'[suppress all messages except errors]'
|
||||
'1:subvolume:_files -/'
|
||||
)
|
||||
;;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
_networkmanager() {
|
||||
local curcontext="$curcontext" state line
|
||||
local nmcli="$words[1]"
|
||||
|
||||
_arguments -C \
|
||||
'(-o -overview)-o'{,verview}'[overview mode (hide default values)]' \
|
||||
|
@ -107,10 +108,22 @@ _nm_connection_down() {
|
|||
}
|
||||
|
||||
_nm_connection_modify() {
|
||||
# TODO: add support for options and properties
|
||||
_arguments \
|
||||
local curcontext="$curcontext" ret=1
|
||||
local -a state line expl properties
|
||||
|
||||
_arguments -A "-*" \
|
||||
"--temporary" \
|
||||
"1:connection:_nm_connection_specs"
|
||||
"1:connection:_nm_connection_specs" \
|
||||
'2:option:->properties' \
|
||||
'3:value' && ret=0
|
||||
|
||||
if [[ -n "$state" ]]; then
|
||||
properties=( ${${(f)"$(_call_program properties $nmcli -t connection show $line[1])"}%%:*} )
|
||||
_description properties expl property
|
||||
_multi_parts "$expl[@]" . properties && ret=0
|
||||
fi
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
_nm_connection_clone() {
|
||||
|
@ -245,6 +258,7 @@ _nm_device_wifi() {
|
|||
_nm_device_wifi_list() {
|
||||
# TODO: support bssid on its own
|
||||
_arguments \
|
||||
'--rescan[force or disable network scan]:network scan:(yes no auto)' \
|
||||
"1: :(ifname)" \
|
||||
"2:interface:_nm_device_ifnames" \
|
||||
"3: :(bssid)" \
|
||||
|
|
|
@ -36,8 +36,9 @@ _arguments -C -s \
|
|||
"($info -w --raw)"{-w,--raw}'[display RAW sockets]' \
|
||||
"($info -x --unix)"{-x,--unix}'[display Unix domain sockets]' \
|
||||
"($info)--tipc[display only TIPC sockets]" \
|
||||
"($info)--xdp[display only XDP sockets]" \
|
||||
"($info)--vsock[display only vsock sockets]" \
|
||||
"($info -f --family)"{-f+,--family=}'[display sockets of specified type]:family:(unix inet inet6 link netlink unix vsock tipc)' \
|
||||
"($info -f --family)"{-f+,--family=}'[display sockets of specified type]:family:(inet inet6 link unix netlink vsock tipc xdp help)' \
|
||||
"($info -K --kill)"{-K,--kill}'[forcibly close sockets, display what was closed]' \
|
||||
"($info -H --no-header)"{-H,--no-header}'[suppress header line]' \
|
||||
"($info -A --query --socket)"{-A+,--query=,--socket=}'[specify socket tables to show]: :_values -s , socket\ table all inet tcp udp raw unix packet netlink unix_dgram unix_stream unix_seqpacket packet_raw packet_dgram vsock_stream vsock_dgram tipc' \
|
||||
|
|
|
@ -12,7 +12,7 @@ _arguments -C -S : \
|
|||
'-C[enable compression]' \
|
||||
'-F[specify ssh config file]:file:_files' \
|
||||
'*-o[specify mount options]:options:->options' \
|
||||
'(-f)-d[enable debug output]' \
|
||||
'(-d --debug -f)'{-d,--debug}'[enable debug output]' \
|
||||
'-f[foreground]' \
|
||||
'-s[disable multithreaded operation]' \
|
||||
':remote directory:_user_at_host -S:' \
|
||||
|
@ -20,14 +20,14 @@ _arguments -C -S : \
|
|||
|
||||
if [[ $state == options ]]; then
|
||||
_values -s , "sshfs or fuse or mount options" \
|
||||
debug reconnect delay_connect sshfs_sync no_readahead sync_readdir sshfs_debug \
|
||||
'cache:cache setting:(yes no)' \
|
||||
'cache_max_size:size [10000]' \
|
||||
'cache_timeout:timeout (seconds) [20]' \
|
||||
cache_{stat,dir,link}_timeout:'timeout (seconds)' \
|
||||
'cache_clean_interval:interval [60]' \
|
||||
'cache_min_clean_interval:interval [5]' \
|
||||
'workaround:workaround:(none all rename delaysrv truncate nobuflimit)' \
|
||||
reconnect delay_connect sshfs_sync no_readahead sync_readdir \
|
||||
'dir_cache:cache setting:(yes no)' \
|
||||
'dcache_max_size:size [10000]' \
|
||||
'dcache_timeout:timeout (seconds) [20]' \
|
||||
dcache_{stat,dir,link}_timeout:'timeout (seconds)' \
|
||||
'dcache_clean_interval:interval [60]' \
|
||||
'dcache_min_clean_interval:interval [5]' \
|
||||
'workaround:workaround:(none all rename renamexdev delaysrv truncate nobuflimit fstat createmode)' \
|
||||
'idmap:user/group mapping:(none user file)' \
|
||||
uidfile:file:_files \
|
||||
gidfile:file:_files \
|
||||
|
|
|
@ -29,6 +29,8 @@ _arguments -C -s \
|
|||
'-w[summarise syscall latency]' \
|
||||
'*-e+[select events to trace or how to trace]:system call:->expressions' \
|
||||
'*-P+[trace only system calls accessing given path]:path:_files' \
|
||||
'(-Z)-z[trace only system calls that return success]' \
|
||||
'(-z)-Z[trace only system calls that return an error]' \
|
||||
'-b+[detach from process on specified syscall]:syscall:(execve)' \
|
||||
'-f[trace child processes as they are created by currently traced processes]' \
|
||||
'(-c -C)-ff[write each process trace to <filename>.<pid> (when using -o <filename>]' \
|
||||
|
@ -57,25 +59,44 @@ case $state in
|
|||
'write[perform a full hex and ASCII dump of all the data written to listed file descriptors]:file descriptor:_sequence _file_descriptors' \
|
||||
'fault[perform syscall fault injection]:system call:_sys_calls -a -n' \
|
||||
'inject[perform syscall tampering]:system call:_sys_calls -a -n' \
|
||||
'status[trace system calls with given return status]:status:->status' \
|
||||
'kvm[print the exit reason of kvm vcpu]: :(vcpu)' && ret=0
|
||||
if [[ $words[CURRENT] != *=* || $state = syscalls ]]; then
|
||||
if [[ $state = status ]]; then
|
||||
_values -s , 'return status [all]' \
|
||||
all successful failed \
|
||||
"unfinished[system calls that don't return]" \
|
||||
'unavailable[system calls that return but strace fails to fetch the error]' \
|
||||
'detached[system calls where strace detaches before the return]' && ret=0
|
||||
elif [[ $words[CURRENT] != *=* || $state = syscalls ]]; then
|
||||
local dedup sets suf="-qS,"
|
||||
compset -P '!'
|
||||
dedup=( ${(Ms.,.)PREFIX##*,} ${(Ms.,.)SUFFIX%%,*} )
|
||||
compset -S ',*' || suf=""
|
||||
compset -P '*,'
|
||||
sets=(
|
||||
'file:trace all system calls which take a file name as an argument'
|
||||
'process:trace all system calls which involve process management'
|
||||
'network:trace all the network related system calls'
|
||||
'signal:trace all signal related system calls'
|
||||
'ipc:trace all IPC related system calls'
|
||||
'desc:trace all file descriptor related system calls'
|
||||
'memory:trace all memory mapping related system calls'
|
||||
)
|
||||
_alternative \
|
||||
"related system call:sets: _describe -t traces 'related system call' sets -F dedup $suf" \
|
||||
"system call:syscalls:_sys_calls -a -n $suf -F dedup" && ret=0
|
||||
if compset -P /; then
|
||||
_wanted syscalls expl "system call (regex)" _sys_calls -a -n $suf -F dedup && ret=0
|
||||
else
|
||||
sets=(
|
||||
{%,}'file:trace all system calls which take a file name as an argument'
|
||||
{%,}'process:trace all system calls which involve process management'
|
||||
{%net,{%,}network}':trace all the network related system calls'
|
||||
{%,}'signal:trace all signal related system calls'
|
||||
{%,}'ipc:trace all IPC related system calls'
|
||||
{%,}'desc:trace all file descriptor related system calls'
|
||||
{%,}'memory:trace all memory mapping related system calls'
|
||||
'%stat:trace variants of stat'
|
||||
'%lstat:trace variants of lstat'
|
||||
'%fstat:trace variants of fstat and fstatat'
|
||||
'%%stat:trace variants of all syscalls used for requesting file status'
|
||||
'%statfs:trace variants of statfs'
|
||||
'%fstatfs:trace variants of fstatfs'
|
||||
'%%statfs:trace variants of all syscalls used for file system statistics'
|
||||
'%pure:trace syscalls that always succeed and have no arguments'
|
||||
)
|
||||
_alternative \
|
||||
"sets:related system call: _describe -t traces 'related system call' sets -F dedup $suf" \
|
||||
"syscalls:system call:_sys_calls -a -n $suf -F dedup" && ret=0
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
file-pipe)
|
||||
|
|
|
@ -110,7 +110,7 @@ case $service in
|
|||
'(-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]'
|
||||
'(-t --type)'{-t+,--type=}'[choose plugin type]:plugin type [module]:(cache callback connection inventory lookup module strategy vars)'
|
||||
'(-t --type)'{-t+,--type=}'[choose plugin type]:plugin type [module]:(become cache callback cliconf connection httpapi inventory lookup shell module strategy vars)'
|
||||
'*:plugin:->plugins'
|
||||
)
|
||||
;;
|
||||
|
@ -119,9 +119,11 @@ case $service in
|
|||
'--export[when doing an --list, represent in a way that is optimized for export]'
|
||||
'(-y --yaml)--graph[output inventory graph]'
|
||||
'--host[output specific host information]'
|
||||
'--output=[with --list, specify output file]:file:_files'
|
||||
'--list[output all hosts information]'
|
||||
'(-y --yaml --vars --graph)--toml[use TOML format instead of JSON]'
|
||||
'(-y --yaml)--vars[add variables to the graph display]'
|
||||
'(-y --yaml --vars --graph)'{-y,--yaml}'[use YAML format instead of JSON]'
|
||||
'(-y --yaml --toml --vars --graph)'{-y,--yaml}'[use YAML format instead of JSON]'
|
||||
)
|
||||
;;
|
||||
ansible-galaxy)
|
||||
|
@ -176,7 +178,7 @@ esac
|
|||
(( $#words > 2 )) && ign='!'
|
||||
if (( $#args )); then
|
||||
_arguments -s -S -C $args \
|
||||
"${ign}(- :)--version[display version information]" \
|
||||
"${ign}(- :)--version[display version information, config and module locations]" \
|
||||
"${ign}(- :)"{-h,--help}'[display usage information]' \
|
||||
\*{-v,--verbose}"[verbose mode (repeat to increase)]" && ret=0
|
||||
|
||||
|
@ -272,6 +274,7 @@ case $state in
|
|||
;;
|
||||
install)
|
||||
args+=(
|
||||
"--force-with-deps[force overwriting an existing role and it's dependencies]"
|
||||
'(-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]'
|
||||
|
|
|
@ -33,7 +33,7 @@ case $variant in
|
|||
{-e,--source}'[pass program text in arg]:program text:'
|
||||
'(1)'{-E+,--exec}'[like -f, but safer for CGI]:program file:->script'
|
||||
'(- : *)'{-h,--help}'[print usage message and exit]'
|
||||
{-L-,--lint=-}'[warn about dubious or non-portable constructs]::flag:((fatal\:"treat warnings as fatal error" invalid\:"warn only about things that are actually invalid"))'
|
||||
{-L-,--lint=-}'[warn about dubious or non-portable constructs]::flag:((fatal\:"treat warnings as fatal error" invalid\:"warn only about things that are actually invalid" no-ext\:"disable warnings about gawk extensions"))'
|
||||
{-n,--non-decimal-data}'[auto-detect octal/hexadecimal values in input]'
|
||||
{-N,--use-lc-numeric}"[force use of locale's decimal point character]"
|
||||
{-O,--optimize}'[enable optimization]'
|
||||
|
|
|
@ -33,6 +33,15 @@ case $OSTYPE in
|
|||
'-c+[write core file to specified file]:file:_files' \
|
||||
'*:pid:_pids'
|
||||
;;
|
||||
dragonfly*)
|
||||
_arguments -s \
|
||||
'-c+[write core file to specified file]:file:_files' \
|
||||
'-l+[skip map segments larger than the specified limit]:limit (bytes)' \
|
||||
'-s[stop the process while gathering the core image]' \
|
||||
'-v[Verbosely print out the map segments being dumped]' \
|
||||
'::executable:' \
|
||||
':pid:_pids'
|
||||
;;
|
||||
freebsd*)
|
||||
_arguments -s \
|
||||
'-c+[write core file to specified file]:file:_files' \
|
||||
|
|
|
@ -38,6 +38,8 @@ case "$service" in
|
|||
'*--x509keyfile=[specify X.509 key file to use]:file:_files'
|
||||
'*--x509certfile=[specify X.509 certificate file to use]:file:_files'
|
||||
'(-l --list -p --port)'{-l,--list}'[print list of the supported algorithms/modes]'
|
||||
'--keymatexport=[specify label used for exporting keying material]:label'
|
||||
'--keymatexportsize=[specify size of the exported keying material]:size'
|
||||
)
|
||||
;|
|
||||
gnutls-cli|gnutls-serv|certtool)
|
||||
|
|
|
@ -36,6 +36,9 @@ case $OSTYPE in
|
|||
{,-}wep {,-}nwkey add delete ether {,-}link{0,1,2} list wme wmm
|
||||
roam roam:rssi roam:rate roaming
|
||||
)
|
||||
;|
|
||||
dragonfly*)
|
||||
args+=( '-n[disable auto-loading of kernel network interface driver]' )
|
||||
;;
|
||||
irix5*) opts=( $debug ) ;;
|
||||
irix6*)
|
||||
|
|
|
@ -84,7 +84,12 @@ _arguments -S -s -A "[-+]*" \
|
|||
'(-~ --tilde)'{-~,--tilde}"[don't display tildes after end of file]" \
|
||||
'(-\# --shift)'{-\#+,--shift=}"[specify amount to move when scrolling horizontally]:number" \
|
||||
'--follow-name[the F command changes file if the input file is renamed]' \
|
||||
'--mouse[enable mouse input]' \
|
||||
'--no-histdups[remove duplicates from command history]' \
|
||||
'--rscroll=[set the character used to mark truncated lines]:character [>]' \
|
||||
'--save-marks[retain marks across invocations of less]' \
|
||||
'--use-backslash[subsequent options use backslash as escape char]' \
|
||||
'--wheel-lines=[specify lines to move for each click of the mouse wheel]:lines' \
|
||||
"$files[@]" && ret=0
|
||||
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ case $variant; in
|
|||
'(-P)-L[create hard links to symbolic link references]'
|
||||
)
|
||||
;|
|
||||
dragonfly*|freebsd*)
|
||||
dragonfly*|freebsd*|netbsd*)
|
||||
args+=(
|
||||
"-w[warn if source of a symbolic link doesn't currently exist]"
|
||||
)
|
||||
|
|
|
@ -1,9 +1,16 @@
|
|||
#compdef lsof
|
||||
|
||||
local curcontext="$curcontext" state line expl fields args alts suf hsuf pref ret=1
|
||||
local curcontext="$curcontext" ret=1
|
||||
local -a state line expl args vals fields alts suf hsuf pref
|
||||
|
||||
case $OSTYPE in
|
||||
linux*) args=( '-X[skip reporting of info on network connections]' ) ;;
|
||||
linux*)
|
||||
args=(
|
||||
'-E[display endpoint info for pipes, sockets and pseudoterminal files but not files of the endpoints]'
|
||||
'+E[display endpoint info for pipes, sockets and pseudoterminal files including files of the endpoints]'
|
||||
'-X[skip reporting of info on network connections]'
|
||||
)
|
||||
;;
|
||||
solaris*)
|
||||
args=(
|
||||
'-X[include deleted files]'
|
||||
|
@ -24,8 +31,8 @@ _arguments -C -s -S $args \
|
|||
'+D[recursively search from specified dir]:search directory:_files -/' \
|
||||
'-D[direct use of device cache file]:function:((\?\:report\ device\ cache\ file\ paths b\:build\ the\ device\ cache\ file i\:ignore\ the\ device\ cache\ file r\:read\ the\ device\ cache\ file u\:read\ and\ update\ the\ device\ cache\ file))' \
|
||||
'*-+e[exempt filesystem from blocking kernel calls]:file system:_directories' \
|
||||
'-f[inhibit listing of kernel file structure info]::info type or path:(c f g G n)' \
|
||||
'+f[enable listing of kernel file structure info]::info type:(c f g G n)' \
|
||||
'-f[inhibit listing of kernel file structure info]::info type:->file-structures' \
|
||||
'+f[enable listing of kernel file structure info]::info type:->file-structures' \
|
||||
'-F[select output fields]:fields:->fields' \
|
||||
'-g[select by process group id]::process group id' \
|
||||
'(*)*-i[select internet files]::address:->addresses' \
|
||||
|
@ -93,6 +100,18 @@ case $state in
|
|||
_sequence -s , _wanted -x file-descriptors expl "file descriptor" compadd - \
|
||||
cwd err jld ltz mem mmap pd rtd tr txt v86 && ret=0
|
||||
;;
|
||||
file-structures)
|
||||
vals=(
|
||||
'g[file flag abbreviations]'
|
||||
'G[file flags in hexadecimal]'
|
||||
)
|
||||
[[ $OSTYPE != linux* ]] && vals+=(
|
||||
'c[file structure use count]'
|
||||
'f[file structure address]'
|
||||
'n[file structure node address]'
|
||||
)
|
||||
_values 'kernel file structures' $vals && ret=0
|
||||
;;
|
||||
states)
|
||||
if compset -P 1 '*:'; then
|
||||
_sequence _wanted states expl state compadd - -M 'm:{a-z}={A-Z}' \
|
||||
|
|
|
@ -69,6 +69,7 @@ _mpc_command() {
|
|||
find:"search for a song, exact match"
|
||||
findadd:"find songs and add them to the current playlist"
|
||||
list:"list all tags of given type"
|
||||
listneighbors:"list neighbors"
|
||||
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"
|
||||
|
|
|
@ -77,7 +77,7 @@ _arguments -C \
|
|||
'(-n --dry-run)'{-n,--dry-run}'[do a trial run with no permanent changes]' \
|
||||
'--dump[list of items to dump from]:string:_sequence compadd - headers bodies requests responses auth filters goroutines openfiles' \
|
||||
'--dump-bodies[dump HTTP headers and bodies - may contain sensitive info]' \
|
||||
'--dump-headers[dump HTTP bodies - may contain sensitive info]' \
|
||||
'--dump-headers[dump HTTP headers - may contain sensitive info]' \
|
||||
'--exclude[exclude files matching pattern]:stringArray' \
|
||||
'--exclude-from[read exclude patterns from file]:files:_files' \
|
||||
'--exclude-if-present[exclude directories if filename is present]:string' \
|
||||
|
@ -86,6 +86,7 @@ _arguments -C \
|
|||
{-f,--filter}'[add a file-filtering rule]:stringArray' \
|
||||
'--filter-from[read filtering patterns from a file]:file:_files' \
|
||||
'--ignore-case[ignore case in filters (case insensitive)]' \
|
||||
'--ignore-case-sync[ignore case when synchronizing]' \
|
||||
'--ignore-checksum[skip post copy check of checksums]' \
|
||||
'--ignore-errors[delete even if there are I/O errors]' \
|
||||
'--ignore-existing[skip all files that exist on destination]' \
|
||||
|
@ -108,6 +109,8 @@ _arguments -C \
|
|||
'--min-age[only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y]:duration [default off]' \
|
||||
'--min-size[only transfer files bigger than this in k or suffix b|k|M|G]:int [default off]' \
|
||||
'--modify-window[specify max time delta to be considered the same]:duration [1ns]' \
|
||||
'--multi-thread-cutoff[use multi-threaded downloads for files above specified size]:size (250M)' \
|
||||
'--multi-thread-streams[specify max number of streams to use for multi-threaded downloads]:number (4)' \
|
||||
"--no-check-certificate[don't verify the server SSL certificate (insecure)]" \
|
||||
"--no-gzip-encoding[don't set Accept-Encoding: gzip]" \
|
||||
'!--no-traverse' \
|
||||
|
@ -120,6 +123,8 @@ _arguments -C \
|
|||
'--rc-client-ca[client certificate authority to verify clients with]:string' \
|
||||
'--rc-files[path to local files to serve on the HTTP server]:directory:_path_files -/' \
|
||||
'--rc-htpasswd[htpasswd file - if not provided no authentication is done]:file:_files' \
|
||||
'--rc-job-expire-duration[expire finished async jobs older than specified duration]:duration (1m0s)' \
|
||||
'--rc-job-expire-interval[specify interval to check for expired async jobs]:interval (10s)' \
|
||||
'--rc-key[SSL PEM Private key]:string' \
|
||||
'--rc-max-header-bytes[maximum size of request header]:int [4096]' \
|
||||
"--rc-no-auth[don't require auth for certain methods]" \
|
||||
|
@ -136,6 +141,8 @@ _arguments -C \
|
|||
'--stats-file-name-length[max file name length in stats. 0 for no limit]:int [40]' \
|
||||
'--stats-log-level[log level to show --stats output]:string [INFO]:(DEBUG INFO NOTICE ERROR)' \
|
||||
'--stats-one-line[make the stats fit on one line]' \
|
||||
'--stats-one-line-date[enable --stats-one-line and add current date/time prefix]' \
|
||||
'--stats-one-line-date-format[enable --stats-one-line-date and use custom formatted date]:date format' \
|
||||
'--stats-unit[specify units for data rate in stats]:unit [bytes]:(bits bytes)' \
|
||||
'--streaming-upload-cutoff[specify size cutoff for switching to chunked upload]:size [100k]' \
|
||||
'--suffix[specify suffix for use with --backup-dir]:string' \
|
||||
|
@ -219,9 +226,11 @@ _arguments -C \
|
|||
'--drive-list-chunk[size of listing chunk 100-1000. 0 to disable]:int [1000]' \
|
||||
'--drive-root-folder-id[specify ID of the root folder]:string' \
|
||||
'--drive-scope[scope that rclone should use when requesting access from drive]:scope' \
|
||||
'--drive-server-side-across-configs[allow server side operations (eg copy) to work across different drive configs]' \
|
||||
'--drive-service-account-credentials[specify service account credentials JSON blob]:string' \
|
||||
'--drive-service-account-file[specify service account credentials JSON file path]:file:_files' \
|
||||
'--drive-shared-with-me[only show files that are shared with me]' \
|
||||
'--drive-size-as-quota[show storage quota usage for file size]' \
|
||||
'--drive-skip-gdocs[skip google documents in all listings]' \
|
||||
'--drive-team-drive[specify ID of the team drive]:ID' \
|
||||
'--drive-trashed-only[only show files that are in the trash]' \
|
||||
|
@ -234,9 +243,11 @@ _arguments -C \
|
|||
'--dropbox-client-secret[specify Dropbox app client secret]:secret' \
|
||||
'--dropbox-impersonate[impersonate specified user]:user' \
|
||||
'--ftp-host[specify FTP host to connect to]:host:_hosts' \
|
||||
"--ftp-no-check-certificate[don't verify the TLS certificate of the server]" \
|
||||
'--ftp-pass[specify FTP password]:password' \
|
||||
'--ftp-port[specify FTP port]:port [21]:_ports' \
|
||||
'--ftp-user[specify FTP username]:username' \
|
||||
'--ftp-tls[use FTP over TLS (implicit)]' \
|
||||
'--ftp-user[specify FTP username]::username' \
|
||||
'--gcs-bucket-acl[access control list for new buckets]:string' \
|
||||
'--gcs-client-id[Google application client id]:client id' \
|
||||
'--gcs-client-secret[Google application client secret]:secret' \
|
||||
|
@ -251,7 +262,6 @@ _arguments -C \
|
|||
'--hubic-client-secret[Hubic client secret]:secret' \
|
||||
'--jottacloud-hard-delete[delete files permanently rather than putting them into the trash]' \
|
||||
'--jottacloud-md5-memory-limit[files bigger than this will be cached on disk to calculate the MD5 if required]:size [10M]' \
|
||||
'--jottacloud-mountpoint[the mountpoint to use]:string' \
|
||||
'--jottacloud-pass[password]:string' \
|
||||
'--jottacloud-unlink[remove existing public link to file/folder with link command rather than creating]' \
|
||||
'--jottacloud-user[user name]:string' \
|
||||
|
@ -286,6 +296,7 @@ _arguments -C \
|
|||
'--s3-storage-class[the storage class to use when storing new objects in S3]:string' \
|
||||
'--s3-upload-concurrency[concurrency for multipart uploads]:int [2]' \
|
||||
'--s3-v2-auth[if true use v2 authentication]' \
|
||||
'--s3-use-accelerate-endpoint[use the AWS S3 accelerated endpoint]' \
|
||||
'--sftp-ask-password[allow asking for SFTP password when needed]' \
|
||||
'--sftp-disable-hashcheck[disable the execution of SSH commands to determine if remote file hashing is available]' \
|
||||
'--sftp-host[SSH host to connect to]:string' \
|
||||
|
|
|
@ -46,9 +46,11 @@ options+=(
|
|||
$^dashes'-append[append the database to the end of the file]'
|
||||
$^dashes'-bail[stop after hitting an error]'
|
||||
$^dashes'-cmd[run specified command before reading stdin]:sqlite meta-command'
|
||||
$^dashes'-deserialize[open the database using sqlite3_deserialize()]'
|
||||
'(-*batch -*interactive)'$^dashes'-batch[force batch I/O]'
|
||||
'(-*batch -*interactive)'$^dashes'-interactive[force interactive I/O]'
|
||||
$^dashes'-lookaside[specify size and number of entries for lookaside memory]:size (bytes): :entries'
|
||||
$^dashes'-maxsize[specify maximum size for a --deserialize database]:size'
|
||||
$^dashes'-memtrace[trace all memory allocations and deallocations'
|
||||
$^dashes'-mmap[set default mmap size]:size'
|
||||
$^dashes'-newline[set output row separator]:separator [\n]'
|
||||
|
|
|
@ -96,6 +96,7 @@ _tmux_aliasmap=(
|
|||
prevl previous-layout
|
||||
renamew rename-window
|
||||
resizep resize-pane
|
||||
resizew resize-window
|
||||
respawnp respawn-pane
|
||||
respawnw respawn-window
|
||||
rotatew rotate-window
|
||||
|
@ -301,17 +302,20 @@ _tmux-detach-client() {
|
|||
|
||||
_tmux-display-message() {
|
||||
[[ -n ${tmux_describe} ]] && print "display a message in the status line" && return
|
||||
_arguments -s -S \
|
||||
_arguments -s -S -A "-*" \
|
||||
'(-p -F :)-a[list the format variables and their values]' \
|
||||
'-c+[specify target client]:client:__tmux-clients' \
|
||||
'-p[print message to stdout]' \
|
||||
'(-a)-p[print message to stdout]' \
|
||||
'-t+[specify target pane]:pane:__tmux-panes' \
|
||||
'-F+[specify output format]:format:__tmux-formats' \
|
||||
'(-a)-F+[specify output format]:format:__tmux-formats' \
|
||||
'(-a)-v[prints verbose logging as the format is parsed]' \
|
||||
':message'
|
||||
}
|
||||
|
||||
_tmux-display-panes() {
|
||||
[[ -n ${tmux_describe} ]] && print "display an indicator for each visible pane" && return
|
||||
_arguments -S \
|
||||
"-b[don't block other commands until indicator is closed]" \
|
||||
'-d+[time to show indicator for]:duration (ms)' \
|
||||
'-t+[specify target client]:client:__tmux-clients' \
|
||||
'*:::command:= _tmux'
|
||||
|
@ -324,6 +328,7 @@ _tmux-find-window() {
|
|||
'-N[match window name]' \
|
||||
'-T[match window title]' \
|
||||
'-t+[specify target window]:window:__tmux-windows' \
|
||||
'-Z[zoom the pane]' \
|
||||
':window search pattern'
|
||||
}
|
||||
|
||||
|
@ -584,10 +589,17 @@ _tmux-previous-window() {
|
|||
|
||||
_tmux-refresh-client() {
|
||||
[[ -n ${tmux_describe} ]] && print "refresh a client" && return
|
||||
_arguments -s \
|
||||
_arguments -s -S -A "-*" \
|
||||
'-C+[set the width and height of a control client]:width,height' \
|
||||
'-c[reset so that the position follows the cursor]' \
|
||||
'-D[move visible portion of window down]' \
|
||||
'-L[move visible portion of window left]' \
|
||||
'-l[request clipboard from the client and store it in a new paste buf using xterm(1) escape sequence]' \
|
||||
"-S[only update the client's status bar]" \
|
||||
'-t+[specify target client]:client:__tmux-clients' \
|
||||
'-C+:size'
|
||||
'-R[move visible portion of window right]' \
|
||||
'-U[move visible portion of window up]' \
|
||||
': :_guard "[0-9]#" "adjustment"'
|
||||
}
|
||||
|
||||
_tmux-rename-session() {
|
||||
|
@ -616,7 +628,22 @@ _tmux-resize-pane() {
|
|||
'-x+[specify width]:width' \
|
||||
'-y+[specify height]:height' \
|
||||
'-Z[toggle zoom of pane]' \
|
||||
':adjustment'
|
||||
': :_guard "[0-9]#" "adjustment"'
|
||||
}
|
||||
|
||||
_tmux-resize-window() {
|
||||
[[ -n ${tmux_describe} ]] && print "resize a window" && return
|
||||
_arguments -s -A "-*" -S : \
|
||||
'-A[set size of largest session containing the window]' \
|
||||
'-a[set size of smallest session containing the window]' \
|
||||
'-D[resize downward]' \
|
||||
'-L[resize to the left]' \
|
||||
'-R[resize to the right]' \
|
||||
'-U[resize upward]' \
|
||||
'-t+[specify target pane]:pane:__tmux-windows' \
|
||||
'-x+[specify width]:width' \
|
||||
'-y+[specify height]:height' \
|
||||
': :_guard "[0-9]#" "adjustment"'
|
||||
}
|
||||
|
||||
_tmux-respawn-pane() {
|
||||
|
@ -1071,7 +1098,7 @@ function __tmux-environment-variables() {
|
|||
if _describe -t parameters $msg descriptions; then
|
||||
:
|
||||
elif [[ -n $hint ]]; then
|
||||
_message $msg
|
||||
_message -e $msg
|
||||
fi
|
||||
;;
|
||||
(value)
|
||||
|
@ -1079,10 +1106,10 @@ function __tmux-environment-variables() {
|
|||
# TODO: this if/else is because '_description -x' prints the "No matches" error in addition to the message.
|
||||
if [[ -n $var_and_val ]]; then
|
||||
local -a expl
|
||||
_description -x parameter-values expl "Value for ${words[-2]}"
|
||||
_description -x parameter-values expl "value for ${words[-2]}"
|
||||
compadd "$expl[@]" - ${var_and_val#*=}
|
||||
else
|
||||
_message "Value for ${words[-2]}"
|
||||
_message -e "value for ${words[-2]}"
|
||||
fi
|
||||
;;
|
||||
(*)
|
||||
|
@ -1128,7 +1155,7 @@ function __tmux-get-optarg() {
|
|||
}
|
||||
|
||||
__tmux-nothing-else() {
|
||||
_message "no further arguments"
|
||||
_message -e "no further arguments"
|
||||
}
|
||||
|
||||
function __tmux-option-guard() {
|
||||
|
@ -1140,12 +1167,13 @@ function __tmux-option-guard() {
|
|||
int_guard='_guard "[0-9]#" "'${opt}': numeric value"'
|
||||
if [[ ${mode} == 'session' ]]; then
|
||||
options=(
|
||||
'activity-action:DESC:any none current other'
|
||||
'assume-paste-time:'${int_guard}
|
||||
'base-index:'${int_guard}
|
||||
'bell-action:DESC:any none current other'
|
||||
'bell-on-alert:DESC:on off'
|
||||
'default-command:MSG:command string'
|
||||
'default-shell:MSG:shell executable'
|
||||
'default-size:MSG:XxY'
|
||||
'destroy-unattached:DESC:on off'
|
||||
'detach-on-destroy:DESC:on off'
|
||||
'display-panes-colour:__tmux-colours'
|
||||
|
@ -1164,7 +1192,9 @@ function __tmux-option-guard() {
|
|||
'repeat-time:'${int_guard}
|
||||
'set-titles:DESC:on off'
|
||||
'set-titles-string:MSG:title format string'
|
||||
'silence-action:DESC:any none current other'
|
||||
'status:DESC:on off'
|
||||
'status-format:MSG:format string'
|
||||
'status-interval:'${int_guard}
|
||||
'status-justify:DESC:left centre right'
|
||||
'status-keys:DESC:vi emacs'
|
||||
|
@ -1177,6 +1207,7 @@ function __tmux-option-guard() {
|
|||
'status-right-style:__tmux-style'
|
||||
'status-style:__tmux-style'
|
||||
'update-environment:MSG:string listing env. variables'
|
||||
'user-keys:MSG:key'
|
||||
'visual-activity:DESC:on off'
|
||||
'visual-bell:DESC:on off'
|
||||
'visual-silence:DESC:on off'
|
||||
|
@ -1185,13 +1216,14 @@ function __tmux-option-guard() {
|
|||
elif [[ ${mode} == 'server' ]]; then
|
||||
options=(
|
||||
'buffer-limit:'${int_guard}
|
||||
'command-alias:MSG:alias'
|
||||
'default-terminal:MSG:terminal string'
|
||||
'escape-time:'${int_guard}
|
||||
'exit-empty:DESC:on off'
|
||||
'exit-unattached:DESC:on off'
|
||||
'focus-events:DESC:on off'
|
||||
'history-file:_path-files -g "*(-.)"'
|
||||
'message-limit:'${int_guard}
|
||||
'quiet:DESC:on off'
|
||||
'set-clipboard:DESC:on off'
|
||||
'terminal-overrides:MSG:overrides string'
|
||||
)
|
||||
|
@ -1204,13 +1236,12 @@ function __tmux-option-guard() {
|
|||
'automatic-rename-format:DESC:__tmux-format'
|
||||
'clock-mode-colour:__tmux-colours'
|
||||
'clock-mode-style:DESC:12 24'
|
||||
'force-height:'${int_guard}
|
||||
'force-width:'${int_guard}
|
||||
'main-pane-height:'${int_guard}
|
||||
'main-pane-width:'${int_guard}
|
||||
'mode-keys:DESC:vi emacs'
|
||||
'mode-style:__tmux-style'
|
||||
'monitor-activity:DESC:on off'
|
||||
'monitor-bell:DESC:on off'
|
||||
'monitor-silence:DESC:on off'
|
||||
'other-pane-height:'${int_guard}
|
||||
'other-pane-width:'${int_guard}
|
||||
|
@ -1230,6 +1261,7 @@ function __tmux-option-guard() {
|
|||
'window-status-last-style:__tmux-style'
|
||||
'window-status-separator:MSG:separator string'
|
||||
'window-status-style:__tmux-style'
|
||||
'window-size:MSG:XxY'
|
||||
'window-style:__tmux-style'
|
||||
'wrap-search:DESC:on off'
|
||||
'xterm-keys:DESC:on off'
|
||||
|
@ -1241,12 +1273,11 @@ function __tmux-option-guard() {
|
|||
_message "unknown ${mode} option: ${opt}"
|
||||
return
|
||||
fi
|
||||
_message "${mode} option value"
|
||||
guard=${guard#*:}
|
||||
case ${guard} in
|
||||
('') ;;
|
||||
(MSG:*)
|
||||
_message ${guard#*:}
|
||||
_message -e ${guard#*:}
|
||||
;;
|
||||
(DESC:*)
|
||||
eval "desc=( ${guard#*:} )"
|
||||
|
@ -1261,12 +1292,13 @@ function __tmux-option-guard() {
|
|||
function __tmux-session-options() {
|
||||
local -a tmux_session_options
|
||||
tmux_session_options=(
|
||||
'activity-action:set action on window activity when monitor-activity is on'
|
||||
'assume-paste-time:assume keys are pasted instead of typed if this fast'
|
||||
'base-index:define where to start numbering'
|
||||
'bell-action:set action on window bell'
|
||||
'bell-on-alert:ring the terminal bell when an alert occurs'
|
||||
'default-command:default command for new windows'
|
||||
'default-shell:default shell executable'
|
||||
'default-size:set the default size of windows when the size is not set'
|
||||
'destroy-unattached:destroy session if no client is attached'
|
||||
'detach-on-destroy:detach client if attached session is destroyed'
|
||||
'display-panes-colour:colour used for display-panes'
|
||||
|
@ -1286,7 +1318,9 @@ function __tmux-session-options() {
|
|||
'repeat-time:time for multiple commands without prefix-key presses'
|
||||
'set-titles:try to set xterm window titles'
|
||||
'set-titles-string:format used by set-titles'
|
||||
'silence-action:set action on window silence when monitor-silence is on'
|
||||
'status:show or hide the status bar'
|
||||
'status-format:specify the format to be used for each line of the status line'
|
||||
'status-interval:interval (in seconds) for status bar updates'
|
||||
'status-justify:position of the window list in status bar'
|
||||
'status-keys:mode to use in status bar modes (vi/emacs)'
|
||||
|
@ -1299,6 +1333,7 @@ function __tmux-session-options() {
|
|||
'status-right-style:style of right part of status line'
|
||||
'status-style:style status line'
|
||||
"update-environment:list of variables to be copied to a session's environment"
|
||||
'user-keys:set list of user-defined key escape sequences'
|
||||
'visual-activity:display status line messages upon activity'
|
||||
'visual-bell:use visual bell instead of audible'
|
||||
'visual-silence:print a message if monitor-silence is on'
|
||||
|
@ -1352,13 +1387,14 @@ function __tmux-server-options() {
|
|||
local -a tmux_server_options
|
||||
tmux_server_options=(
|
||||
'buffer-limit:number of buffers kept per session'
|
||||
'command-alias:custom command aliases'
|
||||
'default-terminal:default terminal definition string'
|
||||
'escape-time:set timeout to detect single escape characters (in msecs)'
|
||||
'exit-unattached:make server exit if it has no attached clients'
|
||||
'exit-empty:exit when there are no active sessions'
|
||||
'focus-events:request focus events from terminal'
|
||||
'history-file:tmux command history file name'
|
||||
'message-limit:set size of message log per client'
|
||||
'quiet:enable/disable the display of various informational messages'
|
||||
'set-clipboard:use esc sequences to set terminal clipboard'
|
||||
'terminal-overrides:override terminal descriptions'
|
||||
)
|
||||
|
@ -1420,13 +1456,12 @@ function __tmux-window-options() {
|
|||
'automatic-rename-format:format for automatic renames'
|
||||
'clock-mode-colour:set clock colour'
|
||||
'clock-mode-style:set clock hour format (12/24)'
|
||||
'force-height:force a windows to a certain height'
|
||||
'force-width:force a windows to a certain width'
|
||||
'main-pane-height:set height for main-* layouts'
|
||||
'main-pane-width:set width for main-* layouts'
|
||||
'mode-keys:mode to use in copy and choice modes (vi/emacs)'
|
||||
'mode-style:set window modes style'
|
||||
'monitor-activity:monitor window activity'
|
||||
'monitor-bell:monitor for a bell in the window'
|
||||
'monitor-silence:monitor window for inactivity'
|
||||
'other-pane-height:height of other panes'
|
||||
'other-pane-width:width of other panes'
|
||||
|
@ -1446,6 +1481,7 @@ function __tmux-window-options() {
|
|||
'window-status-last-style:style of last window in status bar'
|
||||
'window-status-separator:separator drawn between windows in status line'
|
||||
'window-status-style:general status bar style'
|
||||
'window-size:indicate how to automatically size windows'
|
||||
'window-style:style of window'
|
||||
'wrap-search:search wrap around at the end of a pane'
|
||||
'xterm-keys:generate xterm-style function key sequences'
|
||||
|
|
Loading…
Reference in a new issue