Compare commits

..

27 Commits

Author SHA1 Message Date
F.B. a971c76f6d
Merge 5359bbf0e7 into 46317b36e2 2025-11-19 17:09:22 +08:00
Shohei YOSHIDA 46317b36e2
Merge pull request #1171 from zsh-users/update-ghc
Update ghc completion
2025-11-17 12:22:56 +09:00
Shohei YOSHIDA 8cecc84fb3
Merge pull request #1174 from zsh-users/remove-augtool
Remove augtool completion
2025-11-16 02:56:03 +09:00
Shohei YOSHIDA 508f2971c2
Remove augtool completion
This is already provided by zsh itself
2025-11-16 02:40:48 +09:00
Shohei YOSHIDA 094a7e79b0
Merge pull request #1172 from zsh-users/augeas
Add augeas tools
2025-11-15 21:43:49 +09:00
Shohei YOSHIDA e4072c73ba
Merge pull request #1173 from zsh-users/update-cap
Update cap completion
2025-11-15 21:42:54 +09:00
Shohei YOSHIDA c30c5509e1
Update cap completion 2025-11-15 21:23:02 +09:00
Shohei YOSHIDA 7e671b08d1
Add augeas tools 2025-11-15 18:36:42 +09:00
Shohei YOSHIDA 572ed9638f
Update flags from newer ghc documents 2025-11-14 12:54:05 +09:00
Shohei YOSHIDA c16614f37e
Apply formatting and refactor ghc-pkg completion 2025-11-13 16:33:44 +09:00
Shohei YOSHIDA 10147cfb99
Merge pull request #1170 from zsh-users/diskutils
Add macOS diskutil completion
2025-11-13 14:30:04 +09:00
Shohei YOSHIDA b664a1e7f3
Add macOS diskutil completion 2025-11-12 20:07:16 +09:00
Shohei YOSHIDA 48203e84ae
Merge pull request #1169 from zsh-users/certbot
Add certbot completion
2025-11-12 14:53:23 +09:00
Shohei YOSHIDA 863c0116e1
Add certbot completion 2025-11-11 22:07:59 +09:00
Shohei YOSHIDA 7fbdd25526
Merge pull request #1168 from zsh-users/update-mac-completion
Update mac completion
2025-11-04 07:50:27 +09:00
Shohei YOSHIDA 55cf78b510
Merge pull request #1167 from zsh-users/add-completions
Add chpasswd and yamllint completions
2025-11-02 00:35:31 +09:00
Shohei YOSHIDA 8433d73097
add yamllint completion 2025-10-30 23:06:37 +09:00
Shohei YOSHIDA 97621528c6
add chpasswd completion 2025-10-30 23:03:42 +09:00
Shohei YOSHIDA 1262853ed3
Merge pull request #1166 from zsh-users/add-more-util-linux
Add more util-linux completions
2025-10-30 17:08:12 +09:00
Shohei YOSHIDA 5a79f8c721 Add textutil completion 2025-10-30 16:01:01 +09:00
Shohei YOSHIDA 59e36ba77b Update screencapture completion 2025-10-30 15:30:05 +09:00
Shohei YOSHIDA 7f461a9a40 update networkQuality completion 2025-10-30 15:26:10 +09:00
Shohei YOSHIDA 0b9424d0c8
add rev completion 2025-10-29 20:51:33 +09:00
Shohei YOSHIDA 5384be72c5
add chcpu completion 2025-10-29 20:39:09 +09:00
Shohei YOSHIDA 7c4d643f58
add vipw completion 2025-10-29 20:33:43 +09:00
Shohei YOSHIDA d1478b05be
add wdctl completion 2025-10-29 20:11:54 +09:00
Shohei YOSHIDA a8fcd0402f
add zramctl completion 2025-10-29 12:37:27 +09:00
17 changed files with 2560 additions and 547 deletions

66
src/_augmatch Normal file
View File

@ -0,0 +1,66 @@
#compdef augmatch
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for augmatch 1.14.1 (https://augeas.net/)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_augmatch_lens() {
local lenses=($(augtool --noload 'match /augeas/load/*/lens' | sed -e 's/.*@//'))
_values lenses $lenses
}
_arguments \
'(- *)'{-h,--help}'[show help message]' \
'(-a --all)'{-a,--all}'[print all tree nodes, even ones without an associated value]' \
'(-e --extract)'{-e,--extract}'[only print the parts of the tree that are matched with --match]' \
\*{-I,--include=}'[add directory to the module loadpath]:dir:_files -/' \
'(-l --lens)'{-l,--lens=}'[use lens for the given file]:lens:_augmatch_lens' \
'(-L --print-lens)'{-L,--print-lens}'[print the name of lens]' \
'(-m --match)'{-m,--match=}'[only print the parts of the tree that match]:expr' \
'(-r --root)'{-r,--root=}'[use directory as the root of the filesystem]:dir:_files -/' \
'(-S --nostdinc)'{-S,--nostdinc}'[do not search any of the default directories for lenses]' \
'(-o --only-value)'{-o,--only-value}'[print only the value and not label or the path of nodes]' \
'(-q --quiet)'{-q,--quiet}'[do not print anything]' \
'*:: :_files'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

56
src/_augparse Normal file
View File

@ -0,0 +1,56 @@
#compdef augparse
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for augparse 1.14.1 (https://augeas.net/)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_arguments \
'(- *)'{-h,--help}'[show help message]' \
'(- *)--version[print version information and exit]' \
\*{-I,--include=}'[add directory to the module loadpath]:dir:_files -/' \
'(-t --trace)'{-t,--trace}'[print a trace of modules that are being loaded]' \
'--nostdinc[do not search any of the default directories for modules]' \
'--notypecheck[do not perform lens type checks]' \
'*:: :_files'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

61
src/_augprint Normal file
View File

@ -0,0 +1,61 @@
#compdef augprint
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for augprint 1.14.1 (https://augeas.net/)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_augprint_lens() {
local lenses=($(augtool --noload 'match /augeas/load/*/lens' | sed -e 's/.*@//'))
_values lenses $lenses
}
_arguments \
'(- *)'{-h,--help}'[show help message]' \
'(-v --verbose)'{-v,--verbose}'[include the original numbered paths as comments in the output]' \
'(-r --regexp)'{-r-,--regexp=-}'[generate regular expressions to match values]:num' \
'(-l --lens)'{-l,--lens=}'[use lens for the given file]:lens:_augprint_lens' \
'(-t --target)'{-t,--target=}'[generate the script as if its path was really targetfile]:file:_files' \
'(-s --noseq)'{-s,--noseq}'[do not use "seq::*" in the output]' \
'*:: :_files'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

View File

@ -28,7 +28,7 @@
# Description
# -----------
#
# Completion script for Capistrano 3.17.1 (https://capistranorb.com/)
# Completion script for Capistrano 3.19.2 (https://capistranorb.com/)
#
# ------------------------------------------------------------------------------
# Authors
@ -46,22 +46,24 @@ _arguments -C \
'--backtrace=[Enable full backtrace]: :(stderr stdout)' \
'--comments[Show commented tasks only]' \
'--job-stats[Display job statistics]:level' \
'--rules[Trace the rules resolution]' \
'--suppress-backtrace[Suppress backtrace lines matching regexp PATTERN]:pattern' \
'(-A --all)'{-A,--all}'[Show all tasks, even uncommented ones]' \
'(-B --build-all)'{-B,--build-all}'[Build all prerequisites, including those which are up-to-date]' \
'(-C --directory)'{-C,--directory}'[Change to DIRECTORY before doing anything]: :_files -/' \
'(-D --describe)'{-D,--describe}'[Describe the tasks, then exit]:pattern' \
'(-E --execute-continue)'{-E,--execute-continue}'[Execute Ruby code and exit]:code' \
'(-e --execute)'{-e,--execute}'[Execute some Ruby code and exit]:code' \
'(-E --execute-continue)'{-E,--execute-continue}'[Execute Ruby code and continue with task processing]:code' \
'(-f --rakefile)'{-f,--rakefile}'[Use FILENAME as the rakefile to search for]: :_files' \
'(-G --no-system --nosystem)'{-G,--no-system,--nosystem}'[Use standard project Rakefile search paths, ignore system wide rakefiles]' \
'(-g --system)'{-g,--system}'[Using system wide rakefiles]' \
'(-I --libdir)'\*{-I,--libdir}'[Include LIBDIR in the search path for required modules]: :_files -/' \
'(-j --jobs)'{-j,--jobs}'[Specifies the maximum number of tasks to execute in parallel]:num' \
'(-j --jobs)'{-j-,--jobs-}'[Specifies the maximum number of tasks to execute in parallel]:num' \
'(-m --multitask)'{-m,--multitask}'[Treat all tasks as multitasks]' \
'(-N --no-search --nosearch)'{-N,--no-search,--nosearch}'[Do not search parent directories for the Rakefile]' \
'(-P --prereqs)'{-P,--prereqs}'[Display the tasks and dependencies, then exit]' \
'--execute-print[Execute some Ruby code, print the result, then exit]:code' \
'--require[Require MODULE before executing rakefile]:module' \
'*--require[Require MODULE before executing rakefile]:module' \
'(-R --rakelibdir --rakelib)'{-R,--rakelibdir,--rakelib}'[Auto-import any .rake files in RAKELIBDIR]: :_files -/' \
'(-t --trace)'{-t,--trace}'[Turn on invoke/execute tracing, enable full backtrace]: :(stderr stdout)' \
'(-T --tasks)'{-T,--tasks}'[Display the tasks with descriptions]::pattern' \

262
src/_certbot Normal file
View File

@ -0,0 +1,262 @@
#compdef certbot
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for certbot 5.1.0 (https://github.com/certbot/certbot)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_certbot() {
typeset -A opt_args
local context state line
local curcontext="$curcontext"
local ret=1
_arguments -C -A "-*" \
'(- *)'{-h,--help}'[Print help message]:topic:_certbot_help_topics' \
'(- *)--version[Print version and exit]' \
'1: :_certbot_subcommands' \
'*::arg:->args' \
&& ret=0
case "$state" in
(args)
local -a opts=(
'(- *)'{-h,--help}'[Show help message and exit]'
'(-c --config)'{-c,--config}'[Path to config file]:config_file:_files'
)
case $words[1] in
(run|certonly|renew|enhance|certificates|delete|reconfigure)
opts+=(
'--cert-name[Certificate name to apply]:name'
)
;|
(run|certonly|renew|reconfigure)
opts+=(
'--deploy-hook[Command to be run once for each successfully issued certificate]:hook'
)
;|
(run|certonly|renew)
opts+=(
'(-q --quiet)'{-q,--quiet}'[Silence all output except errors]'
'--required-profile[Request the given profile name from the ACME server]:profile'
'--preferred-profile[Request the given profile name from the ACME server]:profile'
'--preferred-chain[Set the preferred certificate chain]:chain'
)
;|
(run|certonly|enhance|certificates)
opts+=(
'(-d --domains --domain)'{-d,--domains,--domain}'[Domain names to include]'
)
;|
(run|certonly|enhance|register)
opts+=(
'--force-interactive[Force Certbot to be interactive even not in a terminal]'
)
;|
(run|certonly|enhance)
opts+=(
'(-n --non-interactive --noninteractive)'{-n,--non-interactive,--noninteractive}'[Run without ever asking for user input]'
)
;|
(run|certonly|register)
opts+=(
'--eab-kid[Key identifier for External Account Binding]:eab_kid'
'--eab-hmac-key[HMAC key for External Account Binding]:eab_hmac_key'
'--eab-hmac-alg[HMAC algorithm for External Account Binding(default: HS256)]:algorithm:(HS256 HS384 HS512)'
)
;|
(run|certonly)
opts+=(
'(--keep-until-expiring --keep --reinstall)'{--keep-until-expiring,--keep,--reinstall}'[Always keep the existing one until it is due for renewal]'
'--debug-challenges[After setting up challenges, wait for user input before submitting to CA]'
'--issuance-timeout[How many seconds Certbot will wait for the server to issue a certificate]:seconds'
'--apache[Obtain and install certificates using Apache]'
'--nginx[Obtain and install certificates using Nginx]'
)
;|
(certonly|renew|reconfigure)
opts+=(
'--run-deploy-hooks[run any applicable deploy hooks]'
)
;|
(certonly|renew)
opts+=(
"--dry-run[Perform a test run against the Let's Encrypt staging server]"
'--allow-subset-of-names[When performing domain validation, do not consider it a failure]'
'--preferred-challenges[A sorted, comma delimited list of the preferred challenge]:challenges'
)
;|
(run|revoke)
opts+=(
'(--test-cert --staging)'{--test-cert,--staging}"[Use the Let's Encrypt staging server to obtain or revoke test]"
)
;|
(certonly|revoke)
opts+=(
'--cert-path[Path to where certificate is saved]:cert:_files'
)
;|
(certonly|reconfigure)
opts+=(
'--webroot[Obtain certificates by placing files in a webroot directory]'
)
;|
(certonly)
opts+=(
'--csr[Path to a Certificate Signing Request (CSR) in DER or PEM format]:csr:_files'
'--standalone[Obtain certificates using a "standalone" webserver]'
'--manual[Provide laborious manual instructions for obtaining a certificate]'
'--dns-cloudflare[Obtain certificates using a Cloudflare DNS TXT record]'
'--dns-digitalocean[Obtain certificates using a DigitalOcean DNS TXT record]'
'--dns-dnsimple[Obtain certificates using a DNSimple DNS TXT record]'
'--dns-dnsmadeeasy[Obtain certificates using a DNS Made Easy DNS TXT record]'
'--dns-gehirn[Obtain certificates using a Gehirn DNS TXT record]'
'--dns-google[Obtain certificates using a Google Cloud DNS TXT record]'
'--dns-linode[Obtain certificates using a Linode DNS TXT record]'
'--dns-luadns[Obtain certificates using a LuaDNS DNS TXT record]'
'--dns-nsone[Obtain certificates using a NS1 DNS TXT record]'
'--dns-ovh[Obtain certificates using a OVH DNS TXT record]'
'--dns-rfc2136[Obtain certificates using a BIND DNS TXT record]'
'--dns-route53[Obtain certificates using a Route53 DNS TXT record]'
'--dns-sakuracloud[Obtain certificates using a Sakura Cloud DNS TXT record]'
)
;|
(renew|reconfigure)
opts+=(
'--pre-hook[Command to be run before obtaining any certificates]:pre_hook'
'--post-hook[Command to be run after attempting to obtain/renew certificates]:post_hook'
)
;|
(renew)
opts+=(
'(--force-renewal --renew-by-default)'{--force-renewal,--renew-by-default}'[renew now regardless of whether it is near expiry]'
'--disable-hook-validation[Disable command validation for hook commands]'
"--no-directory-hooks[Disable running executables found in Certbot's hook directories]"
'--disable-renew-updates[Disable automatic updates to your server configuration]'
'--no-autorenew[Disable auto renewal of certificates]'
)
;|
(enhance)
opts+=(
'--redirect[Automatically redirect all HTTP traffic to HTTPS]'
'--hsts[Add Strict-Transport-Security header to every HTTP response]'
'--uir[Add "Content-Security-Policy: upgrade-insecure-requests" header to every HTTP response]'
'--auto-hsts[Gradually increasing max-age value for HTTP Strict Transport Security security header]'
)
;|
(revoke)
opts+=(
'--reason[Specify reason for revoking certificates]:reason:(unspecified keycompromise affiliationchanged superseded cessationofoperation)'
'(--delete-after-revoke --no-delete-after-revoke)--delete-after-revoke[Delete certificates after revoking them]'
'(--delete-after-revoke --no-delete-after-revoke)--no-delete-after-revoke[Do not delete certificates after revoking them]'
'--key-path[Path to private key for certificates instructions or revocation]:key_path:_files'
)
;|
(reconfigure)
opts+=(
'(-a --authenticator)'{-a,--authenticator}'[Authenticator plugin name]:plugin'
'(-i --installer)'{-i,--installer}'[Installer plugin name]:plugin'
)
;|
(register|unregister|update_account)
opts+=(
'(-m --email)'{-m,--email}'[Email used for registration and recovery contact]:email')
;|
(register|update_account)
opts+=(
'(--eff-email --no-eff-email)--eff-email[Share your e-mail address with EFF]'
'(--eff-email --no-eff-email)--no-eff-email[Do not share your email address with EFF]'
)
;|
(unregister)
opts+=(
'--account[Account ID to use]:account_id'
)
;|
(show_account)
opts+=(
'--server[ACME Directory Resource URI]:server'
)
;|
esac
_arguments "$opts[@]" && ret=0
;;
esac
return ret
}
(( $+functions[_certbot_subcommands] )) ||
_certbot_subcommands() {
local -a commands=(
"run:Obtain & install a certificate in your current webserver"
"certonly:Obtain or renew a certificate, but do not install it"
"renew:Renew all previously obtained certificates that are near"
"enhance:Add security enhancements to your existing configuration"
"certificates:Display information about certificates you have from Certbot"
"revoke:Revoke a certificate (supply --cert-name or --cert-path)"
"delete:Delete a certificate (supply --cert-name)"
"reconfigure:Update a certificate's configuration (supply --cert-name)"
"register:Create an ACME account"
"unregister:Deactivate an ACME account"
"update_account:Update an ACME account"
"show_account:Display account details"
)
_describe -t commands 'command' commands "$@"
}
(( $+functions[_certbot_help_topics] )) ||
_certbot_help_topics() {
local -a topics=(
# topics
all automation commands paths security testing
# subcommands
run certonly renew enhance certificates revoke delete reconfigure register unregister
update_account show_account
# plugins
nginx apache standalone webroot
)
_values topics $topics
}
_certbot "$@"
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

53
src/_chcpu Normal file
View File

@ -0,0 +1,53 @@
#compdef chcpu
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for chcpu v2.41 (https://github.com/util-linux/util-linux)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_arguments \
'(- *)'{-h,--help}'[display this help]' \
'(- *)'{-V,--version}'[display version]' \
'(-c --configure)'{-c,--configure}'[configure the specified CPUs]:cpu_list' \
'(-d --disable)'{-d,--disable}'[disable the specified CPUs]:cpu_list' \
'(-e --enable)'{-e,--enable}'[enable the specified CPUs]:cpu_list' \
'(-g --deconfigure)'{-d,--deconfigure}'[deconfigure the specified CPUs]:cpu_list' \
'(-p --dispatch)'{-p,--dispatch}'[set the CPU dispatching mode]:mode:(horizontal vertical)' \
'(-r --rescan)'{-r,--rescan}'[trigger a rescan of CPUs]'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

52
src/_chpasswd Normal file
View File

@ -0,0 +1,52 @@
#compdef chpasswd
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for chpasswd v4.17 (https://github.com/shadow-maint/shadow)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_arguments \
'(- *)'{-h,--help}'[display this help]' \
'(-c --crypt-method)'{-c,--crypt-method}'[use the specified method to encrypt the passwords]:method:(DES MD5 SHA256 SHA512 YESCRYPT NONE)' \
'(-e --encrypted)'{-e,--encrypted}'[supplied passwords are in encrypted form]' \
'(-m --md5)'{-m,--md5}'[use MD5 encryption instead of DES]' \
'(-R --root)'{-R,--root}'[apply changes in the specified CHROOT_DIR directory]:dir:_files -/' \
'(-P --prefix)'{-P,--prefix}'[apply changes to configuration files under the specified directory PREFIX_DIR]:dir:_files -/' \
'(-s --sha-rounds)'{-s,--sha-rounds}'[use the specified number of rounds to encrypt the passwords]:rounds'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

634
src/_diskutil Normal file
View File

@ -0,0 +1,634 @@
#compdef diskutil
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for diskutil command macOS 26
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex)
#
# ------------------------------------------------------------------------------
_diskutil() {
typeset -A opt_args
local context state line
local curcontext="$curcontext"
local ret=1
_arguments \
'1: :_diskutil_subcommands' \
'*::arg:->args' \
&& ret=0
case "$state" in
(args)
case $words[1] in
(list)
_arguments \
'-plist[output plist instead of normal user-readable output]' \
'1:: :(internal external)' \
'2:: :(physical virtual)' \
&& ret=0
;;
(info)
_arguments \
'-plist[output plist instead of normal user-readable output]' \
'-all[output all disks]' \
&& ret=0
;;
(listFilesystems)
_arguments \
'-plist[output plist instead of normal user-readable output]' \
&& ret=0
;;
(unmount|unmountDisk|eject|disableJournal|disableJournal)
_alternative 'force: :(force)' 'device: :_files' \
&& ret=0
;;
(mount)
_arguments \
'-mountOptions[mount options]:option' \
'-mountPoint[mount point]:path:_files -/' \
'*:: :_diskutil_mount_args' \
&& ret=0
;;
(moveJournal)
_alternative 'internal: :(internal)' 'device: :_files' \
&& ret=0
;;
(eraseDisk)
_arguments \
'-noEFI[do not create EFI partition]' \
'1:format:_diskutil_file_systems' \
'2:name' \
'*:: :_diskutil_erasedisk_args' \
&& ret=0
;;
(eraseVolume)
_arguments \
'1:format:_diskutil_file_systems' \
'2:name' \
'*:: :_diskutil_erasedisk_args' \
&& ret=0
;;
(zeroDisk)
_alternative 'force: :(force)' 'short: :(short)' 'device: :_files' \
&& ret=0
;;
(secureErase)
_arguments \
'1:format:_diskutil_secure_erase_args' \
'*:: :_files' \
&& ret=0
;;
(partitionDisk)
_arguments \
'-noEFI[do not create EFI partition on the target disk]' \
'*:: :_files' \
&& ret=0
;;
(resizeVolume)
_arguments \
'-plist[emit a property list instead of user-formatted output]' \
'*:: :_files' \
&& ret=0
;;
(APFS)
_diskutil_APFS && ret=0
;;
(appleRAID)
_diskutil_appleRAID && ret=0
;;
(coreStorage)
_diskutil_corestorage && ret=0
;;
(image)
_diskutil_image && ret=0
;;
(*)
_arguments \
'*:: :_files' \
&& ret=0
;;
esac
;;
esac
return ret
}
(( $+functions[_diskutil_subcommands] )) ||
_diskutil_subcommands() {
local -a commands=(
"list:List disks"
"info:Get detailed information about a specific whole disk or partition"
"activity:Continuously display system-wide disk manipulation activity"
"listFilesystems:Show the file system personalities available for formatting"
"unmount:Unmount a single volume"
"unmountDisk:Given a disk containing a partition map, unmount all of its volumes"
"eject:Eject a disk"
"mount:Mount a single volume"
"mountDisk:Mount all mountable and UI-browsable volumes on the give partition map"
"rename:Rename a volume"
"enableJournal:Enable journaling on an HFS+ volume"
"disableJournal:Disable journaling on an HFS+ volume"
"moveJournal:Create a 512MB Apple_Journal partiton"
"enableOwnership:Enable ownership a volume"
"disableOwnership:Disable ownership of a volume"
"verifyVolume:Verify the file system data structures of a volume"
"repairVolume:Repair the file system data structures of a volume"
"verifyDisk:Verify the partition map layout of a whole disk intended for booting or data use"
"repairDisk:Repair the partition map layout of a whole disk intended for booting or data use"
"eraseDisk:Erase an existing disk"
"eraseVolume:Write out a new empty file system volume"
"reformat:Erase an existing volume by writing out a new empty file system"
"eraseOptical:Erase optical media"
"zeroDisk:Erase a device, writing zeros to the media"
"randomDisk:Erase a whole disk, writing random data to the media"
"secureErase:Erase, using a secure method"
"partitionDisk:Partition a disk, removing all volumes"
"resizeVolume:Non-destructively resize a volume"
"splitPartition:Destructively split a volume into multiple partitions"
"mergePartitions:Merge two or more partitions on a disk"
"addPartition:Create a new partition following an existing partition"
"APFS:Apple APFS is a system of virtual volumes"
"appleRAID:create, manipulate, destroy AppleRAID volumes"
"coreStorage:gather information/remove CoreStorage volumes"
"image:manipulate DiskImages framework with StorageKit framework"
)
_describe -t commands 'command' commands "$@"
}
(( $+functions[_diskutil_mount_args] )) ||
_diskutil_mount_args() {
local ret=1
local -a attributes=(
'readonly[the file system is mounted read only]'
'nobrowse[the file system is mounted with a recommendation to prevent display]'
)
_alternative \
'attributes: :_values -w attributes $attributes' \
'device: :_files' && ret=0
return ret
}
(( $+functions[_diskutil_erasedisk_args] )) ||
_diskutil_erasedisk_args() {
local ret=1
_alternative \
'type: :(APM MBR GPT)' \
'device: :_files' && ret=0
return ret
}
(( $+functions[_diskutil_secure_erase_args] )) ||
_diskutil_secure_erase_args() {
local ret=1
local -a levels=(
'0[Single-pass zero fill erase]'
'1[Single-pass random fill erase]'
'2[Seven-pass erase]'
'3[Gutmann algorithm 35-pass erase]'
'4[Three-pass erase, consisting of two random fills plus a final zero fill]'
)
_alternative \
'freespace: :(freespace)' \
'level: :_values level $levels' && ret=0
return ret
}
(( $+functions[_diskutil_file_systems] )) ||
_diskutil_file_systems() {
local file_systems=(
'APFSX:Case-sensitive APFS'
'APFS:APFS'
'ExFAT:ExFat'
'FREE:Free Space'
'MS-DOS:FAT'
'FAT32:FAT32'
'HFS+:MacOS Extended HFS+'
'HFSX:Case-sensitive Mac OS Extended HFS+'
'JHFSX:Case-sensitive and journaled Mac OS Extended HFS+'
'JHFS+:Journaled Mac OS Extended HFS+'
)
_describe -t file_systems 'file_system' file_systems "$@"
}
(( $+functions[_diskutil_APFS] )) ||
_diskutil_APFS() {
local ret=1
_arguments -C \
'1: :_diskutil_APFS_subcommands' \
'*:: :->arg' \
&& ret=0
case $state in
(arg)
case $words[1] in
(list|resizeContainer|listCryptoUsers|listSnapshots)
_arguments \
'-plist[emit a property list instead of user-formatted output]' \
'*:: :_files' \
&& ret=0
;;
(convert)
_arguments \
'-dryrun[all calculations, checks, some data moving is performed but your disk is left as valid HFS]' \
'-prebootSource[staging directory of macOS boot items]' \
'*:: :_files' \
&& ret=0
;;
(deleteContainer)
_arguments \
'-force[Activate an alternate last-resort mode]' \
'*:: :_files' \
&& ret=0
;;
(addVolume)
_arguments \
'-passprompt[will be prompted interactively for a passphrase]' \
'-passphrase[passphrase]:passphrase' \
'-stdinpassphrase[read passphrase from standard input]' \
'-passphraseHint[passphrase hint]:hint' \
'-reserve[guarantee a minimum amount of space for your volume]:reserve' \
"-quota[limit your volume's file usage to a maximum amount]:quota" \
'-role[meta-data flags from APFS Volume Roles]:roles' \
'-groupWith[become a member of the same APFS Volume Group]' \
'-sibling[sibling group device]:group_device' \
'-nomount[leave volume unmounted]' \
'-mountpoint[mountpoint path]:path:_files' \
'*:: :_files' \
&& ret=0
;;
(eraseVolume)
_arguments \
'-passprompt[will be prompted interactively for a passphrase]' \
'-passphrase[passphrase]:passphrase' \
'-stdinpassphrase[read passphrase from standard input]' \
'-passphraseHint[passphrase hint]:hint' \
'-role[meta-data flags from APFS Volume Roles]:roles' \
'-groupWith[become a member of the same APFS Volume Group]' \
'-sibling[sibling group device]:group_device' \
'*:: :_files' \
&& ret=0
;;
(unlockVolume)
_arguments \
'-user[cryptographic user]:user' \
'-recoverykeychain[key chain file]:path:_files' \
'-passphrase[passphrase]:passphrase' \
'-stdinpassphrase[read passphrase from standard input]' \
'-nomount[leave volume unmounted]' \
'-mountpoint[mountpoint path]:path:_files' \
'-systemreadwrite[mount read/write]' \
'-verify[test passphrase correctness without affecting the locked or unlocked state]' \
'-plist[emit a property list instead of user-formatted output]' \
'*:: :_files' \
&& ret=0
;;
(changePassphrase)
_arguments \
'-user[cryptographic user]:user' \
'-oldPassphrase[old passphrase]:old_passphrase' \
'-oldStdinpassphrase[read old passphrase from standard input]' \
'-newPassphrase[new passphrase]:new_passphrase' \
'-newStdinpassphrase[read new passphrase from standard input]' \
'*:: :_files' \
&& ret=0
;;
(setPassphraseHint)
_arguments \
'-user[cryptographic user]:user' \
'-hint[hint message]:hint' \
'-clear[clear any existing hint]' \
'*:: :_files' \
&& ret=0
;;
(encryptVolume)
_arguments \
'-user[cryptographic user]:user' \
'-passphrase[passphrase]:passphrase' \
'-stdinpassphrase[read passphrase from standard input]' \
'*:: :_files' \
&& ret=0
;;
(decryptVolume)
_arguments \
'-user[cryptographic user]:user' \
'-recoverykeychain[key chain file]:path:_files' \
'-passphrase[passphrase]:passphrase' \
'-stdinpassphrase[read passphrase from standard input]' \
'*:: :_files' \
&& ret=0
;;
(deleteSnapshot)
_arguments \
'-user[cryptographic user]:user' \
'-xid[transaction ID]:xid' \
'-name[snapshort name]:name' \
'-wait[wait for removing snapshot]' \
'*:: :_files' \
&& ret=0
;;
(updatePreboot)
_arguments \
'-od[open directory path]:dir:_files -/' \
'*:: :_files' \
&& ret=0
;;
esac
;;
esac
return ret
}
(( $+functions[_diskutil_APFS_subcommands] )) ||
_diskutil_APFS_subcommands() {
local -a commands=(
'list:Display APFS objects as a tree'
'convert:Convert an HFS volume to an APFS Container with a single APFS Volume'
'create:Create an empty APFS Container and add one APFS Volume with the given name'
'createContainer:Create an empty APFS Container'
'deleteContainer:Destroy an existing APFS Container'
'resizeContainer:Resize an existing APFS Container'
'addVolume:Add a new APFS Volume to an existing APFS Container'
'deleteVolume:Remove the given APFS Volume from its APFS Container'
'deleteVolumeGroup:Remove all APFS Volumes from the APFS Container'
'eraseVolume:Erase the contents of an existing APFS Volume'
'changeVolumeRole:Change the role metadata flags of an existing APFS Volume'
'unlockVolume:Unlock the mount an encrypted and locked APFS Volume or verify a passphrase'
'lockVolume:Unmount and lock an encrypted unlocked APFS Volume'
'listCryptoUsers:Show all cryptographic users and special-purpose users'
'changePassphrase:Change the passphrase of the user associated with the given APFS Volume'
'setPassphraseHint:Set an arbitrary hint string to aid recall of a passphrase'
'encryptVolume:Start encryption of a currently-unencrypted APFS Volume'
'decryptVolume:Start decryption of a currently-encrypted APFS Volume'
'listSnapshots:Show all APFS Snapshots associated with the given APFS Volume'
'deleteSnapshot:Remove the given APFS Snapshot from its APFS Volume'
'listGroups:Display the relationships among APFS Volumes which are defined by APFS Volume Groups'
'defragment:Manage automatic background defragmentation at the APFS Container or Volume level'
"updatePreboot:Update the target volume's associated Preboot Volume"
'syncPatchUsers:Perform a specific repair of APFS cryptographic user lock records'
)
_describe -t commands 'command' commands "$@"
}
(( $+functions[_diskutil_appleRAID] )) ||
_diskutil_appleRAID() {
local ret=1
_arguments -C \
'1: :_diskutil_appleRAID_subcommands' \
'*:: :->arg' \
&& ret=0
case $state in
(arg)
case $words[1] in
(list)
_arguments \
'-plist[emit a property list instead of user-formatted output]' \
'*:: :_files' \
&& ret=0
;;
(create)
_arguments \
'1:command:(mirror stripe concat)' \
'*:: :_files' \
&& ret=0
;;
(add)
_arguments \
'1:type:(member spare)' \
'*:: :_files' \
&& ret=0
;;
(enable)
_arguments \
'1:command:(mirror concat)' \
'*:: :_files' \
&& ret=0
;;
(update)
_arguments \
'1:key:(AutoRebuild SetTimeout)' \
'2:value' \
'*:: :_files' \
&& ret=0
;;
esac
;;
esac
return ret
}
(( $+functions[_diskutil_appleRAID_subcommands] )) ||
_diskutil_appleRAID_subcommands() {
local -a commands=(
'list:Display AppleRAID volumes with current status and associated member disks'
'create:Create a new RAID set consisting of multiple disks and/or RAID sets'
'delete:Destroy an existing RAID set'
'repairMirror:Repair a degraded mirror'
'add:Add a new member or hot spare to an existing RAID set'
'remove:Remove a member or spare from an existing RAID set'
'enable:Convert a non-RAID disk partition into an RAID set'
'update:Update the key-value parameters of an existing RAID set'
)
_describe -t commands 'command' commands "$@"
}
(( $+functions[_diskutil_corestorage] )) ||
_diskutil_corestorage() {
local ret=1
_arguments -C \
'1: :_diskutil_corestorage_subcommands' \
'*:: :->arg' \
&& ret=0
case $state in
(arg)
case $words[1] in
(list|info)
_arguments \
'-plist[emit property list instead of the formatted tree output]' \
'*:: :_files' \
&& ret=0
;;
(unlockVolume)
_arguments \
'-nomount[not mount automatically]' \
'-stdinpassphrase[read password from standard input]' \
'-passphrase[passphrase]:passphrase' \
'-recoverykeychain[a path to keychain file]:file:_files' \
'*:: :_files' \
&& ret=0
;;
esac
;;
esac
return ret
}
(( $+functions[_diskutil_corestorage_subcommands] )) ||
_diskutil_corestorage_subcommands() {
local -a commands=(
'list:Display a tree view of the CoreStorage world'
'info:Display properties of the CoreStorage object'
'delete:Delete a CoreStorage logical volume group'
'unlockVolume:Unlock a logical volume and file system'
)
_describe -t commands 'command' commands "$@"
}
(( $+functions[_diskutil_image] )) ||
_diskutil_image() {
local ret=1
_arguments -C \
'--stdinpassphrase[read the passphrase from stdin]' \
'--verbose[enable verbose output]' \
'--plist[produce output in a plist format]' \
'1: :_diskutil_image_subcommands' \
'*:: :->arg' \
&& ret=0
case $state in
(arg)
case $words[1] in
(attach)
_arguments \
'--readOnly[disk image is attached read-only]' \
'--nobrowse[hide the mounted volume in the disk image from GUI applications]' \
'--mountPoint[path to mount the image]:mount_point:_files -/' \
'--mountOptions[comma separated mount options]:option' \
'--mountPolicy[mount policy]:policy:(noMount autoMount forceMount)' \
'--noMount[skip any mount attempts and only attach the disk image]' \
'*--shadow[shadow file path]:file:_files' \
'*:: :_files' \
&& ret=0
;;
(info)
_arguments \
'--extra[additional information will be retrieved for some image types]' \
&& ret=0
;;
(create)
_diskutil_image_create && ret=0
;;
(resize)
_arguments \
'(-s --size)'{-s,--size}'[new size of the disk image]:size' \
'--image-only[only resize the disk image and adjust a secondary GPT table to the new size]' \
&& ret=0
;;
esac
;;
esac
return ret
}
(( $+functions[_diskutil_image_subcommands] )) ||
_diskutil_image_subcommands() {
local -a commands=(
'attach:Attach a disk image as a device'
'info:Print out information includes about a disk image'
'chpass:Change the passphrase of a given encrypted image'
'create:Create a disk image'
'resize:Resizes an existing disk image represented by given URL'
)
_describe -t commands 'command' commands "$@"
}
(( $+functions[_diskutil_image_create] )) ||
_diskutil_image_create() {
local ret=1
_arguments -C \
'1: :_diskutil_image_create_subcommands' \
'*:: :->arg' \
&& ret=0
case $state in
(arg)
case $words[1] in
(blank)
_arguments \
'--format[disk format]:format:(RAW ASIF USDB)' \
'--size[disk size]:size' \
'--volumeName[volume name]:name' \
'-fs[create a file system in the specified format]:format:(APFS ExFAT MS-DOS)' \
'*:: :_files' \
&& ret=0
;;
(from)
_arguments \
'--format[disk format]:format:(RAW UDRO UDZO ULFO ULMO ASIF UDSB)' \
'--shadow[path to the shadow file]:path:_files' \
'*:: :_files' \
&& ret=0
;;
esac
;;
esac
return ret
}
(( $+functions[_diskutil_image_create_subcommands] )) ||
_diskutil_image_create_subcommands() {
local -a commands=(
'blank:create a blank disk image'
'from:create a disk image from source'
)
_describe -t commands 'command' commands "$@"
}
_diskutil "$@"
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

1430
src/_ghc

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@
# Description
# -----------
#
# Completion script for networkQuality on macOS
# Completion script for networkQuality on macOS 26
#
# ------------------------------------------------------------------------------
# Authors
@ -35,13 +35,21 @@
# ------------------------------------------------------------------------------
_arguments \
'-b[Show Bonjour advertised networkQuality servers]' \
'-B[Run against specified Bonjour instance]:name' \
'-C[Use custom configuration URL or path]:url_or_path' \
'-f[Force usage of a specific protocol selection]:option:(h1 h2 h3 L4S noL4S)' \
'-I[Bind test to interface]:interface:_net_interfaces' \
'-M[Maximum runtime in seconds]:seconds' \
'-r[Connect to host or IP]:host' \
'-c[Produce computer-readable output]' \
'-S[Create a networkQuality server-instance running locally on the specified port]:port' \
'-c[Produce computer-readable output]:file:_files' \
'-d[Do not run a download test(implies -s)]' \
'-h[Show help]' \
'-k[Disable verification of the server identity via TLS]' \
'-p[Use iCloud Private Relay]' \
'-s[Run tests sequentially instead of parallel upload/download]' \
'-u[Do not run an upload test(implies -s)]' \
'-v[Verbose output]'
# Local Variables:

48
src/_rev Normal file
View File

@ -0,0 +1,48 @@
#compdef rev
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for rev v2.41 (https://github.com/util-linux/util-linux)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_arguments \
'(- *)'{-h,--help}'[display this help]' \
'(- *)'{-V,--version}'[display version]' \
'(-0 --zero)'{-0,--zero}'[use the nul character as line separator]'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

View File

@ -24,7 +24,7 @@
# Description
# -----------
#
# Completion script for screencapture command
# Completion script for screencapture command macOS 26
#
# ------------------------------------------------------------------------------
# Authors
@ -46,7 +46,6 @@ _arguments \
'-p[screen capture will use the default settings for capture]' \
'-M[screen capture output will go to a new Mail message]' \
'-P[screen capture output will open in Preview or QuickTime Player]' \
'-I[screen capture output will open in Messages]' \
'-B[screen capture output will open in app with bundle ID]:bundle_id:' \
'(-b -i -w -W)-s[only allow mouse selection mode]' \
'-S[in window capture mode, capture the screen not the window]' \

78
src/_textutil Normal file
View File

@ -0,0 +1,78 @@
#compdef textutil
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for textutil command macOS 26
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex)
#
# ------------------------------------------------------------------------------
local -a format=(txt html rtf rtfd doc docx wordml odt webarchive)
_arguments -S \
'-help[Show the usage information for the command and exit]' \
'-info[Display information about the specified files]' \
'-convert[Convert the specified files to the indicated format and write]:format:'"($format)" \
'-cat[Read the specified files, concatenate them in the indicated format]:format:'"($format)" \
'-extension[Specify an extension to be used for output files]:ext' \
'-output[Specify the file name to be used for the first output file]:path:_files' \
'-stdin[Specify that input should be read from stdin rather than from files]' \
'-stdout[Specify that the first output file should go to stdout]' \
'-encoding[Specify the encoding to be used for plain text or HTML output files]:encode' \
'-inputencoding[Force all plain text input files to be interpreted using the specified encoding]' \
'-format[Force all input files to be interpreted using the indicated format]:format:'"($format)" \
'-font[Specify the name of the font to be used for converting plain to rich text]:font' \
'-fontsize[Specify the size in points of the font to be used for converting plain to rich text]:size' \
'-noload[Do not load subsidiary resources]' \
'-nostore[Do not write out subsidiary resources]' \
'-baseurl[Specify a base URL to be used for relative URLs]:url' \
'-timeout[Specify the time in seconds to wait for resources to load]' \
'-textsizemultiplier[Specify a numeric factor by which to multiply font sizes]' \
'-excludeelements[Specify which HTML elements should not used in generated HTML]:tags' \
'-prefixspaces[Specify the number of spaces by which to indent nested elements]:spaces' \
'-strip[Do not copy metadata from input files to output files]' \
'-title[Specify the title metadata attribute for output files]:title' \
'-author[Specify the author metadata attribute for output files]:author' \
'-subject[Specify the subject metadata attribute for output files]:subject' \
'-keywords[Specify the keywords metadata attribute for output files]:keywords' \
'-comment[Specify the comment metadata attribute for output files]:comment' \
'-editor[Specify the editor metadata attribute for output files]:editor' \
'-company[Specify the company metadata attribute for output files]:company' \
'-creationtime[Specify the creation time metadata attribute for output files]:creation_time' \
'-modificationtime[Specify the modification time metadata attribute for output files]:modification_time' \
'*:: :_files'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

51
src/_vipw Normal file
View File

@ -0,0 +1,51 @@
#compdef vipw
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for vipw v4.17 (https://github.com/shadow-maint/shadow)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_arguments \
'(- *)'{-h,--help}'[display this help]' \
'(-g --group -p --passwd)'{-g,--group}'[edit group database]' \
'(-g --group -p --passwd)'{-p,--passwd}'[edit passwd database]' \
'(-q --quiet)'{-q,--quiet}'[quiet mode]' \
'(-R --root)'{-R,--root}'[apply changes in the given directory]:dir:_files -/' \
'(-s --shadow)'{-s,--shadow}'[eedit shadow or gshadow database]'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

72
src/_wdctl Normal file
View File

@ -0,0 +1,72 @@
#compdef wdctl
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for wdctl v2.41 (https://github.com/util-linux/util-linux)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
(( $+functions[_wdctl_output_columns] )) ||
_wdctl_output_columns() {
local -a columns=(
"FLAG[flag name]"
"DESCRIPTION[flag description]"
"STATUS[flag status]"
"BOOT-STATUS[flag boot status]"
"DEVICE[watchdog device name]"
)
_values -s ',' column $columns
}
_arguments -s \
'(- *)'{-h,--help}'[display this help]' \
'(- *)'{-V,--version}'[display version]' \
'(-f --flags)'{-f,--flags}'[print selected flags only]:flags' \
'(-F --noflags)'{-F,--noflags}'[do not print information about flags]' \
'(-I --noident)'{-I,--noident}'[do not print watchdog identity information]' \
'(-n --noheadings)'{-n,--noheadings}'[do not print headings for flags table]' \
'(-O --oneline)'{-O,--oneline}'[print all information on one line]' \
'(-o --output)'{-o,--output}'[output columns]:columns:_wdctl_output_columns' \
'(-p --setpretimeout)'{-p,--setpretimeout}'[set watchdog pre-timeout]:seconds' \
'(-g --setpregovernor)'{-g,--setpregovernor}'[set pre-timeout governor]:name' \
'(-r --raw)'{-r,--raw}'[use raw output format for flags table]' \
'(-T --notimeouts)'{-T,--notimeouts}'[do not print watchdog timeouts]' \
'(-s --settimeout)'{-s,--settimeout}'[set watchdog timeout]:seconds' \
'(-x --flags-only)'{-x,--flags-only}'[print only flags table]'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

54
src/_yamllint Normal file
View File

@ -0,0 +1,54 @@
#compdef yamllint
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for yamllint 1.37.1 (https://github.com/adrienverge/yamllint)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
_arguments \
'(- *)'{-h,--help}'[show help message and exit]' \
'(-c --config-file)'{-c,--config-file}'[path to a custom configuration]:config:_files' \
'(-d --config-data)'{-d,--config-data}'[custom configuration(as YAML source)]:data' \
'(- *)--list-files[list files to lint and exit]' \
'(-f --format)'{-f,--format}'[format for parsing output]:format:(parsable standard colored github auto)' \
'(-s --strict)'{-s,--strict}'[return non-zero exit code on warnings as well as errors]' \
'--no-warnings[output only error level problems]' \
'(- *)'{-v,--version}'[show program version number and exit]' \
'*:: :_files -g "*.(yaml|yml)"'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et

79
src/_zramctl Normal file
View File

@ -0,0 +1,79 @@
#compdef zramctl
# ------------------------------------------------------------------------------
# Copyright (c) 2025 Github zsh-users - https://github.com/zsh-users
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for zramctl v2.41 (https://github.com/util-linux/util-linux)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Shohei Yoshida (https://github.com/syohex) <syohex@gmail.com>
#
# ------------------------------------------------------------------------------
(( $+functions[_zramctl_output_columns] )) ||
_zramctl_output_columns() {
local -a columns=(
"NAME[zram device name]"
"DISKSIZE[limit on the uncompressed amount of data]"
"DATA[uncompressed size of stored data]"
"COMPR[compressed size of stored data]"
"ALGORITHM[the selected compression algorithm]"
"STREAMS[number of concurrent compress operations]"
"ZERO-PAGES[empty pages with no allocated memory]"
"TOTAL[all memory including allocator fragmentation and metadata overhead]"
"MEM-LIMIT[memory limit used to store compressed data]"
"MEM-USED[memory zram have been consumed to store compressed data]"
"MIGRATED[number of objects migrated by compaction]"
"COMP-RATIO[compression ratio: DATA/TOTAL]"
"MOUNTPOINT[where the device is mounted]"
)
_values -s ',' column $columns
}
_arguments \
'(- *)'{-h,--help}'[display this help]' \
'(- *)'{-V,--version}'[display version]' \
'(-a --algorithm)'{-a,--algorithm}'[compression algorithm to use]:algorithm:(lzo lz4 lz4hc deflate 842 zstd)' \
'(-b --bytes)'{-b,--bytes}'[print sizes in bytes rather than in human readable format]:bytes' \
'(-f --find)'{-f,--find}'[find a free device]' \
'(-n --noheadings)'{-n,--noheadings}'[do not print headings]' \
'(-o --output)'{-o,--output}'[output columns]:columns:_zramctl_output_columns' \
'(-o --output --output-all)--output-all[output all columns]' \
'(-p --algorithm-params)'{-p,--algorithm-params}'[algorithm parameters to use]' \
'--raw[use raw status output format]' \
'(-r --reset)'{-r,--reset}'[reset all specified devices]' \
'(-s --size)'{-s,--size}'[device size]:size' \
'(-t --streams)'{-t,--streams}'[number of compression streams]:number'
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et