summaryrefslogtreecommitdiffstats
path: root/Completion/Linux/Command
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2025-01-27 23:10:16 +0100
committerOliver Kiddle <opk@zsh.org>2025-01-27 23:34:59 +0100
commit4e4274eda6012aead1f236502b163ba063bc465a (patch)
tree6635dd84f2aff322e452a91dc8f5d67a8a2e434e /Completion/Linux/Command
parent53326: completion updates for core Linux utils (diff)
downloadzsh-4e4274eda6012aead1f236502b163ba063bc465a.tar
zsh-4e4274eda6012aead1f236502b163ba063bc465a.tar.gz
zsh-4e4274eda6012aead1f236502b163ba063bc465a.tar.bz2
zsh-4e4274eda6012aead1f236502b163ba063bc465a.tar.lz
zsh-4e4274eda6012aead1f236502b163ba063bc465a.tar.xz
zsh-4e4274eda6012aead1f236502b163ba063bc465a.tar.zst
zsh-4e4274eda6012aead1f236502b163ba063bc465a.zip
53328: completion options update
Diffstat (limited to 'Completion/Linux/Command')
-rw-r--r--Completion/Linux/Command/_cpupower1
-rw-r--r--Completion/Linux/Command/_cryptsetup32
-rw-r--r--Completion/Linux/Command/_ethtool12
-rw-r--r--Completion/Linux/Command/_iptables166
-rw-r--r--Completion/Linux/Command/_selinux17
-rw-r--r--Completion/Linux/Command/_sshfs13
-rw-r--r--Completion/Linux/Command/_valgrind8
7 files changed, 227 insertions, 22 deletions
diff --git a/Completion/Linux/Command/_cpupower b/Completion/Linux/Command/_cpupower
index d342b69d9..cb6f37fb0 100644
--- a/Completion/Linux/Command/_cpupower
+++ b/Completion/Linux/Command/_cpupower
@@ -20,7 +20,6 @@ cmds=(
'info:show global power parameters'
'set:set global power parameters'
'monitor:report frequency and idle statistics'
- 'powercap-info:show powercapping related kernel and hardware configurations'
'help:print usage information'
)
case $state in
diff --git a/Completion/Linux/Command/_cryptsetup b/Completion/Linux/Command/_cryptsetup
index f7149a76f..897eb94f9 100644
--- a/Completion/Linux/Command/_cryptsetup
+++ b/Completion/Linux/Command/_cryptsetup
@@ -13,7 +13,7 @@ _arguments -s \
'(-y --verify-passphrase)'{-y,--verify-passphrase}'[query for password twice]' \
'(-d --key-file)'{-d+,--key-file=}'[set keyfile]:key file:_files' \
'--master-key-file=[set master key]:key file:_files' \
- '--dump-master-key[dump luks master key]' \
+ '--dump-volume-key[dump volume key instead of keyslots info]' \
'(-s --key-size)'{-s+,--key-size=}'[set key size]:size (bits)' \
'(-l --keyfile-size)'{-l+,--keyfile-size=}'[set keyfile size]:size (bytes)' \
'--keyfile-offset=[specify number of bytes to skip in keyfile]:offset (bytes)' \
@@ -37,8 +37,35 @@ _arguments -s \
'--shared[share device with another non-overlapping crypt segment]' \
'--uuid=[set device UUID]:uuid' \
'--allow-discards[allow discard (aka TRIM) requests for device]' \
+ '--cancel-deferred[cancel previously set deferred device removal]' \
+ '--disable-blkid[disable blkid on-disk signature detection and wiping]' \
+ '--disable-external-tokens[disable loading of external LUKS2 token plugins]' \
+ "--disable-veracrypt[don't scan for VeraCrypt compatible device]" \
+ '--dump-json-metadata[dump info in JSON format (LUKS2 only)]' \
+ '--dump-volume-key[dump volume key instead of keyslots info]' \
+ '--external-tokens-path=[specify path to directory with external token handlers (plugins)]:path:_directories' \
+ '--force-offline-reencrypt[force offline LUKS2 reencryption and bypass active device detection]' \
'--header=[device or file with separated LUKS header]:file:_files' \
- '--test-passphrase[do not activate device, just check passphrase]' \
+ '--hw-opal[use HW OPAL encryption together with SW encryption]' \
+ '--hw-opal-factory-reset[wipe WHOLE OPAL disk on luksErase]' \
+ '--hw-opal-only[use only HW OPAL encryption]' \
+ '--keep-key[do not change volume key]' \
+ '--link-vk-to-keyring=[set keyring where to link volume key]:string' \
+ '--new-keyfile=[read the key for a new slot from a file]:file:_files' \
+ '--new-key-slot=[specify slot number for new key]:slot [first free]' \
+ '--new-token-id=[token number]:number [any]' \
+ '--progress-json[print progress data in json format]' \
+ "--test-args[don't run action, just validate all command line parameters]" \
+ '--volume-key-file=[use the volume key from file]:file:_files' \
+ '--volume-key-keyring=[use the specified keyring key as a volume key]:key' \
+ '(-B --block-size)'{-B+,--block-size=}'[reencryption block size]:block size (MiB)' \
+ '(-N --new)'{-N,--new}'[create new header on not encrypted device]' \
+ '--use-directio[use direct-io when accessing devices]' \
+ '--use-fsync[use fsync after each block]' \
+ '--write-log[update log file after every block]' \
+ "--test-passphrase[don't activate device, just check passphrase]" \
+ '--token-replace[replace the current token]' \
+ '--token-type=[restrict allowed token types used to retrieve LUKS2 key]:string' \
'--tcrypt-hidden[use hidden header (hidden TCRYPT device)]' \
'--tcrypt-system[device is system TCRYPT drive (with bootloader)]' \
'--tcrypt-backup[use backup (secondary) TCRYPT header]' \
@@ -118,6 +145,7 @@ case $state in
'luksDump:dump header information'
'tcryptDump:dump TCRYPT device information'
'bitlkDump:dump BITLK device information'
+ 'fvault2Dump:dump FVAULT2 device information'
'luksSuspend:suspend LUKS device and wipe key'
'luksResume:resume suspended LUKS device'
'luksHeaderBackup:store binary backup of headers'
diff --git a/Completion/Linux/Command/_ethtool b/Completion/Linux/Command/_ethtool
index 3e3fc0b1d..8cff24e96 100644
--- a/Completion/Linux/Command/_ethtool
+++ b/Completion/Linux/Command/_ethtool
@@ -157,7 +157,7 @@ if [[ -n $state ]]; then
_wanted files expl 'file' _files
;;
rx-flow-hash)
- _wanted flow-types expl 'flow type' compadd {tcp,udp,ah,esp,sctp}{4,6}
+ _wanted flow-types expl 'flow type' compadd {tcp,udp,ah,esp,sctp}{4,6} gtp{c{4,6}{,t},u{4,6}{,e,u,d}}
;;
rule)
_message -e ids 'rule id'
@@ -177,6 +177,9 @@ if [[ -n $state ]]; then
hfunc)
_message -e functions 'hash function'
;;
+ xfrm)
+ _wanted transformations expl transformation compadd symmetric-xor none
+ ;;
flags)
_message -e masks mask
;;
@@ -186,6 +189,9 @@ if [[ -n $state ]]; then
power-mode-policy)
_wanted policies expl 'policy' compadd high auto
;;
+ tcp-data-split)
+ _wanted states expl state compadd auto on off
+ ;;
*)
case ${${(Mk)opt_args:#cmd?*}[1]#cmd?-} in
-a|--show-pause)
@@ -209,7 +215,7 @@ if [[ -n $state ]]; then
'rx-mini[change number of ring entries for the RX Mini ring]' \
'rx-jumbo[change number of ring entries for the RX Jumbo ring]' \
'tx[change number of ring entries for the TX ring]' \
- rx-buf-len cqe-size tx-push rx-push tx-push-buf-len
+ rx-buf-len tcp-data-split cqe-size tx-push rx-push tx-push-buf-len
;;
-d|--register-dump)
_values -S ' ' -w 'option' \
@@ -306,7 +312,7 @@ if [[ -n $state ]]; then
'(weight default)equal' \
'(equal default)weight' \
'(equal weight)default' \
- hkey hfunc delete
+ hkey hfunc xfrm delete
;;
-f|--flash)
if (( CURRENT == 4 )); then
diff --git a/Completion/Linux/Command/_iptables b/Completion/Linux/Command/_iptables
index 892c48710..0a901f0f2 100644
--- a/Completion/Linux/Command/_iptables
+++ b/Completion/Linux/Command/_iptables
@@ -128,6 +128,27 @@ while
)
;;
comment) args+=( '--comment[add comment to rule]:comment' ) ;;
+ connbytes)
+ args+=(
+ '--connbytes:size (min\:[max])'
+ '--connbytes-dir:packets:(original reply both)'
+ '--connbytes-mode:mode:(packets bytes avgpkt)'
+ )
+ ;;
+ connlabel)
+ args+=(
+ '--label[match if label name has been set on a connection]:label'
+ '--set[set label on connection]'
+ )
+ ;;
+ connlimit)
+ args+=(
+ --connlimit-{upto,above}:connections
+ '--connlimit-mask:prefix length'
+ --connlimit-{s,d}addr
+ )
+ ;;
+ connmark) args+=( --mark:value ) ;;
conntrack)
args+=(
'--ctstate[match packet state]:state:->cfstates'
@@ -136,18 +157,69 @@ while
'--ctorigdst[match original destination address]:*^!:network:_hosts'
'--ctreplsrc[match reply source address]:*^!:network:_hosts'
'--ctrepldst[match reply destination address]:*^!:network:_hosts'
+ --ct{orig,repl}{src,dst}port':port:_ports'
'--ctstatus[match internal conntrack states]:state:(NONE EXPECTED SEEN_REPLY ASSURED)'
'--ctexpire[match remaining lifetime]:time'
+ '--ctdir:direction:(original reply)'
+ )
+ ;;
+ cpu) args+=( --cpu:number ) ;;
+ dccp)
+ args+=(
+ --{s,d,source-,destination-}port:port:_ports
+ '--dccp-types:type:_sequence compadd - REQUEST RESPONSE DATA ACK DATAACK CLOSEREQ CLOSE RESET SYNC SYNCACK INVALID'
+ --dccp-option:option
)
;;
+ devgroup) args+=( --{src,dst}group:name ) ;;
dscp)
args+=(
'--dscp[match DSCP field]:value'
'--dscp-class[match the DiffServ class]:class'
)
;;
+ dst) args+=( --dst-len:length --dst-opts:type ) ;;
+ ecn) args+=( --ecn-{tcp-{cwr,ece},ip-ect} ) ;;
esp) args+=( '--espspi[match SPIs in ESP header]:*^!:spi' ) ;;
+ frag)
+ args+=(
+ --fragid:id --fraglen:length
+ --frag{res,first,more,last}
+ )
+ ;;
+ hashlimit)
+ args+=(
+ --hashlimit-{upto,above,burst}:amount
+ '--hashlimit-mode:object:_sequence compadd - srcip srcport dstip dstport'
+ --hashlimit-{src,dst}mask:prefix
+ --hashlimit-name:name
+ --hashlimit-htable-size:buckets
+ --hashlimit-htable-max:entries
+ --hashlimit-htable-{expire,gcinterval}:msec
+ --hashlimit-rate-match
+ --hashlimit-rate-intervale:sec
+ )
+ ;;
+ hbh) args+=( --hbh-len:length --hbh-opts:type ) ;;
helper) args+=( '--helper[match packets related to a conntrack-helper]:helper:(ftp)' ) ;;
+ hl) args+=( --hl-{eq,lt,gt}:value ) ;;
+ icmp) args+=( --icmp-type:type ) ;;
+ icmp6) args+=( --icmpv6-type:type ) ;;
+ iprange) args+=( --{src,dst}-range':IP range' ) ;;
+ ipv6header)
+ args+=(
+ --soft
+ '--header:header(hop dst route frag auth esp none prot)'
+ )
+ ;;
+ ipvs)
+ args+=(
+ --ipvs --vproto:protocol --vaddr:address
+ --vport{,ctl}':port:_ports'
+ '--vdir:directory:(ORIGINAL REPLY)'
+ '--vmethod:method:(GATE IPIP MASQ)'
+ )
+ ;;
length) args+=( '--length[match packet length]:length' ) ;;
limit)
args+=(
@@ -164,32 +236,120 @@ while
'--ports[match where source and destination ports are equal]:ports:->port-list'
)
;;
+ nfacct) args+=( --nfacct-name:name ) ;;
+ osf) args+=( --genre:string --{ttl,log}:level ) ;;
owner)
args+=(
'--uid-owner[match packet by user id of creating process]:user id'
'--gid-owner[match packet by ggroup id of creating process]:group id'
'--pid-owner[match packet by process id of creating process]:process id:_pids'
'--sid-owner[match packet by session id of creating process]:session id'
- '--cmd-owner[match packet by name of creating command]:command:_command_names -e'
+ --suppl-groups --socket-exists
)
;;
physdev)
args+=(
'--physdev-in[specify bridge port via which packet is received]:name'
'--physdev-out[specify bridge port via which packet is sent]:name'
+ --physdev-is-{in,out,bridged}
)
;;
pkttype) args+=( '--pkt-type[match link-layer packet type]:type:(unicast broadcast multicast)' ) ;;
+ policy)
+ args+=(
+ '--dir:direction:(in out)'
+ '(--strict)--pol:policy:(none ipsec)'
+ '(--pol)--strict'
+ --reqid:id --spi:id
+ '--proto:encapsulation protocol:(ah esp ipcomp)'
+ '--mode:encapsulation mode:(tunnel transport)'
+ --tunnel-{src,dst}:addr --next
+ )
+ ;;
+ quota) args+=( '--quota:quota (bytes)' ) ;;
+ rateest)
+ args+=(
+ --rateest-{delta,lt,gt,eq}
+ --rateest{,1,2}:name
+ --rateest-{bps,pps}{,1,2}:value
+ )
+ ;;
+ realm) args+=( --realm:value ) ;;
+ recent)
+ args+=(
+ --name:name --r{source,dest} --mask:netmask
+ '(--rcheck --update --remove)--set'
+ '(--set --update --remove)--rcheck'
+ '(--set --rcheck --remove)--update'
+ '(--set --rcheck --update)--remove'
+ --seconds:seconds --reap --hitcount:hits --rttl
+ )
+ ;;
+ rpfilter) args+=( --loose --validmark --accept-local --invert ) ;;
+ rt)
+ args+=(
+ --rt-type:type --rt-segsleft:number --rt-len:length
+ --rt-0-{res,not-strict} --rt-0-addrs:address
+ )
+ ;;
+ sctp)
+ args+=(
+ --{s,d,source-,destination-}port:port:_ports
+ '--chunk-types:match type:(all any only):chunk type'
+ )
+ ;;
+ set)
+ args+=(
+ '--match-set:set: :flag'
+ --return-nomatch --update-counters --update-subcounters
+ --{packet,byte}s-{eq,lt,gt}:value
+ )
+ ;;
+ socket) args+=( --transparent --nowildcard --restore-skmark ) ;;
state)
args+=(
'--state[match packet state]:state:->states'
)
;;
+ statistic) args+=( --mode:mode --{probability,every,packet}:value ) ;;
+ string)
+ args+=(
+ '--algo:strategy:(bm kmp)'
+ --{from,to}:offset
+ --{,hex}string:pattern
+ -icase
+ )
+ ;;
+ tcp)
+ args+=(
+ --{s,d,source-,destination-}port:port:_ports
+ '--tcp-flags:mask:->tcp-flags:comp:->tcp-flags'
+ --syn --tcp-option:option
+ )
+ ;;
+ tcpmss) args+=( --mss:value ) ;;
+ time)
+ args+=(
+ --date{start,stop}:date --time{start,stop}:time
+ --{month,week}days:day
+ --contiguous --kerneltz
+ )
+ ;;
tos) args+=( '--tos[match type of service field]:type of service:->tos' ) ;;
- ttl) args+=( '--ttl[match type to live]:TTL value' ) ;;
+ ttl) args+=( '--ttl-'{eq,lt,gt}':TTL value' ) ;;
+ u32) args+=( '--u32:tests' ) ;;
+ udp) args+=( --{s,d,source-,destination-}port:port:_ports ) ;;
esac
done
+if (( CURRENT > 2 )); then
+ if [[ $words[CURRENT-1] = (|\\)\! && ! -prefix - ]]; then
+ args+=( '*: :compadd -S "" - -' )
+ else
+ args+=( '*:negation:(!)' )
+ fi
+fi
+
_arguments -C -s \
'(-)'{-h,--help}'[print program information]' \
'(-)'{-V,--version}'[print version information]' \
@@ -211,13 +371,13 @@ _arguments -C -s \
"($cmds -s --src --source)"{-s,--src,--source}'[specify source]:*^!:network:_sequence _hosts' \
"($cmds -d --dst --destination)"{-d,--dst,--destination}'[specify destination]:*^!:network:_sequence _hosts' \
"($cmds -j --jump)"{-j,--jump}'[specify rule target]:target:->targets' \
+ "($cmds -g --goto)"{-g,--goto}'[jump to chain with no return]:target:->targets' \
"($cmds -i --in-interface)"{-i,--in-interface}'[specify interface via which packet is received]:*^!:interface:_net_interfaces' \
"($cmds -o --out-interface)"{-o,--out-interface}'[specify interface via which packet is to be sent]:*^!:interface:_net_interfaces' \
"($cmds -f --fragment)"{-f,--fragment}'[match second or further fragments only]' \
"($cmds -D --delete -c --set-counters)"{-c,--set-counters}'[initialise packet and byte counters]:packets: :bytes' \
'(-v --verbose)'{-v,--verbose}'[enable verbose output]' \
'(-w --wait)'{-w,--wait}'[specify maximum wait to acquire xtables lock before giving up]: :_numbers -u seconds -d 1 wait' \
- '(-W --wait-interval)'{-W,--wait-interval}'[specify wait time to try to acquire xtables lock]: :_numbers -u usecs -d "1 second" wait' \
'(-n --numeric)'{-n,--numeric}'[print IP addresses and port numbers in numeric format]' \
'(-x --exact)'{-x,--exact}'[expand numbers (display exact values)]' \
'--line-numbers[print line numbers when listing]' \
diff --git a/Completion/Linux/Command/_selinux b/Completion/Linux/Command/_selinux
index a7ba68952..22d78db7d 100644
--- a/