aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJulien Nicoulaud <julien.nicoulaud@gmail.com>2016-02-04 22:58:53 +0100
committerJulien Nicoulaud <julien.nicoulaud@gmail.com>2016-02-04 22:58:59 +0100
commit12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23 (patch)
tree920b4724dc4cb8170872b38aea993ae16112a44b /src
parentMerge pull request #373 from blueyed/xinput (diff)
downloadzsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.tar
zsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.tar.gz
zsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.tar.bz2
zsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.tar.lz
zsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.tar.xz
zsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.tar.zst
zsh-completions-12e3dd2d5f5269f62cd22a57f9c1e9c82f9c9a23.zip
Remove some compdefs that are available directly in zsh
Diffstat (limited to 'src')
-rw-r--r--src/_adb423
-rw-r--r--src/_bpython52
-rw-r--r--src/_cabal709
-rw-r--r--src/_gradle139
-rw-r--r--src/_mosh35
-rw-r--r--src/_nl56
-rw-r--r--src/_ps102
-rw-r--r--src/_qdbus112
-rw-r--r--src/_watch55
-rw-r--r--src/_zfs597
10 files changed, 0 insertions, 2280 deletions
diff --git a/src/_adb b/src/_adb
deleted file mode 100644
index 24fff44..0000000
--- a/src/_adb
+++ /dev/null
@@ -1,423 +0,0 @@
-#compdef adb
-# ------------------------------------------------------------------------------
-# Copyright (c) 2011 Github zsh-users - http://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 adb (Android Debug Bridge) 1.0.26
-# (http://developer.android.com/guide/developing/tools/adb.html).
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Julien Nicoulaud <julien.nicoulaud@gmail.com>
-#
-# ------------------------------------------------------------------------------
-
-
-_adb() {
- typeset -A opt_args
- local context state line curcontext="$curcontext" adb_args
-
- local ret=1
-
- _arguments -C \
- '(-e -s)-d[directs command to the only connected USB device, returns an error if more than one USB device is present]' \
- '(-d -s)-e[directs command to the only running emulator, returns an error if more than one emulator is running]' \
- '(-d -e)-s[directs command to the USB device or emulator with the given serial number]: :_adb_serial_numbers' \
- '-p[simple product name or a relative/absolute path to a product out directory]: :_adb_products' \
- '1: :_adb_cmds' \
- '*::arg:->args' \
- && ret=0
-
- adb_args="${(fkv)opt_args[(I)-d|-e|-s|-p]}"
-
- case "$state" in
- (args)
- curcontext="${curcontext%:*:*}:adb-cmd-$words[1]:"
- case $words[1] in
- (help|version|devices|jdwp|bugreport|wait-for-device|start-server|kill-server|get-state|get-serialno|status-window|remount|reboot-bootloader|root|usb)
- _message 'no more arguments' && ret=0
- ;;
- (connect|disconnect)
- _arguments \
- '1: :_adb_host_colon_ports' \
- && ret=0
- ;;
- (push)
- _arguments \
- '1:files:_files' \
- '2: :_adb_remote_files -/' \
- && ret=0
- ;;
- (pull)
- _arguments \
- '1: :_adb_remote_files -/' \
- '2:local directory:_files -/' \
- && ret=0
- ;;
- (sideload)
- _arguments \
- '1:archive:_files -g "*.zip(-.)"' \
- && ret=0
- ;;
- (sync)
- _arguments \
- '-l[list but do not copy]' \
- '1: :_adb_sync_directories' \
- && ret=0
- ;;
- (shell|emu)
- _arguments -C \
- '1: :_adb_remote_commands' \
- '*::remote-command-arg:->remote-command-args' \
- && ret=0
- case "$state" in
- (remote-command-args)
- curcontext="${curcontext%:*:*}:adb-remote-cmd-$words[1]:"
- if (( $+functions[_adb_remote_command_$words[1]_args] )); then
- _adb_remote_command_$words[1] && ret=0
- # TODO Write handlers for following commands:
- # * am (Activity Manager)
- # * pm (Package Manager)
- # TODO Reuse existing compdefs for standard commands (ls, id, ifconfig, kill, etc) ?
- # How do we tell them to use _remote_ files/pids/users/etc ?
- else
- _adb_remote_command_default && ret=0
- fi
- ;;
- esac
- ;;
- (logcat)
- local -a rotation_opts
- [[ -n ${(M)words:#"-f"} ]] && rotation_opts+=('-r[rotates the log file every kbytes of output. The default value is 16]:value (in kb)')
- [[ -n ${(M)words:#"-r"} ]] && rotation_opts+=('-n[sets the maximum number of rotated logs. The default value is 4]:count')
- _arguments \
- '-b[loads an alternate log buffer for viewing, such as event or radio. The main buffer is used by default]: :_adb_logcat_buffers' \
- '-c[clears (flushes) the entire log and exits]' \
- '-d[dumps the log to the screen and exits]' \
- '-f[writes log message output to file. The default is stdout]: :_files' \
- '-g[prints the size of the specified log buffer and exits]' \
- '-s[sets the default filter spec to silent]' \
- '-v[sets the output format for log messages]: :_adb_logcat_output_formats' \
- "${rotation_opts[@]}" \
- '*: :_adb_logcat_filter_specs' \
- && ret=0
- ;;
- (forward)
- _arguments \
- '1: :_adb_local_forward_specs' \
- '2: :_adb_remote_forward_specs' \
- && ret=0
- ;;
- (install)
- _arguments \
- '-l[forward-lock the app]' \
- '-r[reinstall the app, keeping its data]' \
- '-s[install on SD card instead of internal storage]' \
- '1: :_files' \
- && ret=0
- ;;
- (uninstall)
- _arguments \
- '-k[keep the data and cache directories]' \
- '1: :_adb_packages' \
- && ret=0
- ;;
- (reboot)
- _arguments \
- '1:program:((bootloader:reboot\ into\ the\ bootloader\ program recovery:reboot\ into\ the\ recovery\ program))' \
- && ret=0
- ;;
- (tcpip)
- _arguments \
- '1::port' \
- && ret=0
- ;;
- (ppp)
- # TODO Complete tty (See http://developer.android.com/guide/developing/tools/adb.html#commandsummary)
- # TODO Complete PPP parameters (See http://ppp.samba.org/pppd.html)
- _arguments \
- '1::tty' \
- '*::parameters' \
- && ret=0
- ;;
- esac
- ;;
- esac
-
- return ret
-}
-
-(( $+functions[_adb_cmds] )) ||
-_adb_cmds() {
- _alternative \
- 'general-commands:general command:_adb_general_cmds' \
- 'device-commands:device command:_adb_device_cmds' \
- 'scripting-commands:scripting command:_adb_scripting_cmds'
-}
-
-(( $+functions[_adb_general_cmds] )) ||
-_adb_general_cmds() {
- local commands; commands=(
- 'help:show help message'
- 'version:show version number'
- 'devices:list all connected devices'
- 'connect:connect to a device via TCP/IP'
- 'disconnect:disconnect from a TCP/IP device'
- )
- _describe -t general-commands 'general command' commands "$@"
-}
-
-(( $+functions[_adb_device_cmds] )) ||
-_adb_device_cmds() {
- local commands; commands=(
- 'push:copy file/dir to device'
- 'pull:copy file/dir from device'
- 'sideload:push an update using sideload'
- 'sync:copy host->device only if changed'
- 'shell:run remote shell interactively or command'
- 'emu:run emulator console command'
- 'logcat:view device log'
- 'forward:forward socket connections'
- 'jdwp:list PIDs of processes hosting a JDWP transport'
- 'install:push this padbage file to the device and install it'
- 'uninstall:remove this app padbage from the device'
- 'bugreport:return all information from the device'
- )
- _describe -t device-commands 'device command' commands "$@"
-}
-
-(( $+functions[_adb_scripting_cmds] )) ||
-_adb_scripting_cmds() {
- local commands; commands=(
- 'wait-for-device:block until device is online'
- 'start-server:ensure that there is a server running'
- 'kill-server:kill the server if it is running'
- 'get-state:prints\: offline | bootloader | device'
- 'get-serialno:prints\: <serial-number>'
- 'status-window:continuously print device status for a specified device'
- 'remount:remounts the /system partition on the device read-write'
- 'reboot:reboots the device, optionally into the bootloader or recovery program'
- 'reboot-bootloader:reboots the device into the bootloader'
- 'root:restarts the adbd daemon with root permissions'
- 'usb:restarts the adbd daemon listening on USB'
- 'tcpip:restarts the adbd daemon listening on TCP on the specified port'
- 'ppp:run PPP over USB'
- )
- _describe -t scripting-commands 'scripting command' commands "$@"
-}
-
-(( $+functions[_adb_products] )) ||
-_adb_products() {
- _alternative \
- 'product-names:product name:_adb_product_names' \
- 'directories:directory:_files -/'
-}
-
-(( $+functions[_adb_product_names] )) ||
-_adb_product_names() {
- local ret=1
- if [[ -n "$ANDROID_PRODUCT_OUT" ]]; then
- local product_names; product_names=("$ANDROID_PRODUCT_OUT:default value set in ANDROID_PRODUCT_OUT environment variable")
- _describe -t product-names 'product name' product_names && ret=0
- else
- _message -e product-names 'product name' && ret=0
- fi
- return ret
-}
-
-(( $+functions[_adb_serial_numbers] )) ||
-_adb_serial_numbers() {
- local serial_numbers; serial_numbers=(${${(M)${(f)"$(_call_program devices $service devices)"//:/\\:}:#*device}%%[[:space:]]*}":connected device")
- [[ -n "$ANDROID_SERIAL" ]] && serial_numbers+=("$ANDROID_SERIAL:default value set in ANDROID_SERIAL environment variable")
- _describe -t serial-numbers 'serial number' serial_numbers "$@" && ret=0
-}
-
-(( $+functions[_adb_packages] )) ||
-_adb_packages() {
- local packages; packages=(${${(ps:\r\n:)"$(_call_program packages $service $adb_args shell 'ls /data/data 2>/dev/null')"}:#\**\*})
- _multi_parts . packages
-}
-
-(( $+functions[_adb_host_colon_ports] )) ||
-_adb_host_colon_ports() {
- local ret=1
- if compset -P '*:'; then
- _message -e ports 'port' && ret=0
- else
- _wanted hosts expl 'host' _hosts -qS: && ret=0
- fi
- return ret
-}
-
-(( $+functions[_adb_remote_files] )) ||
-_adb_remote_files() {
- local dirsonly command="ls -d ${(S)words[CURRENT]/\/*//}*/ 2>/dev/null"
- zparseopts -D -E '/=dirsonly'
- (( ! $#dirsonly )) && command+="; ls -d ${words[CURRENT]}* 2>/dev/null"
- local files; files=(${${(ps:\r\n:)"$(_call_program files $service $adb_args shell "'$command'" 2>/dev/null)"}:#\**\*})
- _multi_parts "$@" / files
-}
-
-(( $+functions[_adb_remote_commands] )) ||
-_adb_remote_commands() {
- local commands; commands=(${${(ps:\r\n:)"$(_call_program commands $service $adb_args shell "'IFS=:;for path_dir in \$PATH; do ls \$path_dir 2>/dev/null; done'" 2>/dev/null)"}:#\**\*})
- _describe -t remote-commands 'remote command' commands && ret=0
-}
-
-(( $+functions[_adb_local_forward_specs] )) ||
-_adb_local_forward_specs() {
- local ret=1
- if compset -P '*:'; then
- case ${IPREFIX%:} in
- (tcp)
- _message -e ports 'port' && ret=0
- ;;
- (localabstract|localreserved)
- _wanted sockets expl 'socket' _socket && ret=0
- ;;
- (localfilesystem)
- _wanted socket-files expl 'socket file' _files && ret=0
- ;;
- (dev)
- _wanted devices expl 'device' _files -g "/dev/**" && ret=0
- ;;
- esac
- else
- local modes; modes=(
- 'tcp:TCP socket'
- 'localabstract:local abstract socket'
- 'localreserved:local reserved socket'
- 'localfilesystem:local filesystem socket'
- 'dev:device'
- )
- _describe -t forward-modes 'forward mode' modes -qS: && ret=0
- fi
- return ret
-}
-
-(( $+functions[_adb_remote_forward_specs] )) ||
-_adb_remote_forward_specs() {
- local ret=1
- if compset -P '*:'; then
- case ${IPREFIX%:} in
- (tcp)
- _message -e ports 'remote port' && ret=0
- ;;
- (localabstract|localreserved|localfilesystem)
- _message -e sockets 'remote socket' && ret=0
- ;;
- (dev)
- _message -e devices 'remote device' && ret=0
- ;;
- (jdwp)
- local pids; pids=(${${(f)"$(_call_program pids $service $adb_args jdwp 2>/dev/null)"}:#\**\*})
- _describe -t remote-pids 'remote pid' pids && ret=0
- ;;
- esac
- else
- local modes; modes=(
- 'tcp:TCP socket'
- 'localabstract:local abstract socket'
- 'localreserved:local reserved socket'
- 'localfilesystem:local filesystem socket'
- 'dev:device'
- 'jdwp:Java Debug Wire Protocol'
- )
- _describe -t forward-modes 'forward mode' modes -qS: && ret=0
- fi
- return ret
-}
-
-(( $+functions[_adb_sync_directories] )) ||
-_adb_sync_directories() {
- _alternative \
- 'partitions:partition:((system:the\ /system\ partition data:the\ /data\ partition))' \
- 'directories:directory:_adb_remote_files -/'
-}
-
-(( $+functions[_adb_logcat_filter_specs] )) ||
-_adb_logcat_filter_specs() {
- local ret=1
- if compset -P '*:'; then
- local priorities; priorities=(
- 'V:verbose (lowest priority)'
- 'D:debug'
- 'I:info'
- 'W:warning'
- 'E:error'
- 'F:fatal'
- 'S:silent (highest priority, on which nothing is ever printed)'
- )
- _describe -t log-priorities 'log priority' priorities "$@" && ret=0
- else
- local tags; tags=(${(u)${${${(f)"$(_call_program tags $service $adb_args logcat -d 2>/dev/null)"}%%[[:space:]]#\(*}##*\/}:#\**\*})
- _describe -t log-tags 'log tag' tags -qS: "$@" && ret=0
- fi
- return ret
-}
-
-(( $+functions[_adb_logcat_output_formats] )) ||
-_adb_logcat_output_formats() {
- local formats; formats=(
- 'brief:display priority/tag and PID of originating process (the default format)'
- 'process:display PID only'
- 'tag:display the priority/tag only'
- 'thread:display process:thread and priority/tag only'
- 'raw:display the raw log message, with no other metadata fields'
- 'time:display the date, invocation time, priority/tag, and PID of the originating process'
- 'long:display all metadata fields and separate messages with a blank lines'
- )
- _describe -t log-formats 'log format' formats "$@" && ret=0
-}
-
-(( $+functions[_adb_logcat_buffers] )) ||
-_adb_logcat_buffers() {
- local buffers; buffers=(
- 'main:view the main log buffer (default)'
- 'radio:view the buffer that contains radio/telephony related messages'
- 'events:view the buffer containing events-related messages'
- )
- _describe -t log-buffers 'log buffer' buffers "$@" && ret=0
-}
-
-(( $+functions[_adb_remote_command_default] )) ||
-_adb_remote_command_default() {
- _wanted remote-files expl 'remote file' _adb_remote_files
-}
-
-_adb "$@"
-
-# 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
diff --git a/src/_bpython b/src/_bpython
deleted file mode 100644
index ed16ecd..0000000
--- a/src/_bpython
+++ /dev/null
@@ -1,52 +0,0 @@
-#compdef bpython bpython2
-# ------------------------------------------------------------------------------
-# 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 bpython (http://bpython-interpreter.org/).
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
-#
-# ------------------------------------------------------------------------------
-
-_arguments -A "-*" \
- '(-h --help)'{-h,--help}'[Show help message]' \
- '(-i --interactive)'{-i,--interactive}'[Drop to bpython shell after running file instead of exiting]' \
- '(-q --quiet)'{-q,--quiet}"[Don't flush the output to stdout]" \
- '(-V --version)'{-V,--version}'[Print version and exit]' \
- '--config[Use CONFIG instead of default config file]:Config file:_files' \
- '*: :_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
diff --git a/src/_cabal b/src/_cabal
deleted file mode 100644
index 6b068e7..0000000
--- a/src/_cabal
+++ /dev/null
@@ -1,709 +0,0 @@
-#compdef cabal
-# ------------------------------------------------------------------------------
-# Copyright (c) 2012 Github zsh-users - http://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 cabal-install (http://hackage.haskell.org/trac/hackage/wiki/CabalInstall)
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Gérard Milmeister
-# * Matvey Aksenov <matvey.aksenov@gmail.com>
-#
-# ------------------------------------------------------------------------------
-
-local WORDS
-
-_cabal ()
-{
- WORDS=()
- for w in $words[1,(($CURRENT - 1))]; do
- if [[ $w != -* ]]; then WORDS+=$w; fi
- done
-
- if (( $#WORDS == 1 )); then
- _arguments \
- {-h,--help}'[show help]' \
- {-V,--version}'[print version information]' \
- '--numeric-version[print just the version number]' \
- '--config-file=[set an alternate location for the config file]:config file:_files' \
- '--sandbox-config-file=[set an alternate location for the sandbox config file]:config file:_files' \
- '--require-sandbox[enable requiring the presence of a sandbox for sandbox-aware commands]' \
- '--no-require-sandbox[disable requiring the presence of a sandbox for sandbox-aware commands]' \
- '--ignore-sandbox[ignore any existing sandbox]' \
- '*::command:_cabal_command'
- else
- _arguments '*::command:_cabal_command'
- fi
-}
-
-_cabal_command ()
-{
- local -a _cabal_cmds
- _cabal_cmds=(
- 'update:updates list of known packages'
- 'install:installs a list of packages'
-
- 'help:help about commands'
- 'info:display detailed information about a particular package'
- 'list:list packages matching a search string'
- 'fetch:download packages for later installation'
- "user-config:display and update the user's global cabal configuration"
-
- "get:get a package's source code"
- 'init:interactively create a .cabal file'
-
- 'configure:prepare to build the package'
- 'build:compile all/specific components'
- 'clean:clean up after a build'
-
- 'run:build and run an executable'
- 'repl:open an interpreter session for the given component'
- 'test:run all/specific tests in the test suite'
- 'bench:run all/specific benchmarks'
-
- 'check:check the package for common mistakes'
- 'sdist:generate a source distribution file (.tar.gz)'
- 'upload:upload source packages to Hackage'
- 'report:upload build reports to a remote server'
-
- 'freeze:freeze dependencies'
- 'haddock:generate Haddock HTML documentation'
- 'hscolour:generate HsColour colourised code, in HTML format'
- 'copy:copy the files into the install locations'
- 'register:register this package with the compiler'
-
- 'sandbox:create/modify/delete a sandbox'
- 'exec:give a command access to the sandbox package repository'
- )
-
- local -a _cabal_programs
- _cabal_programs=()
-
- programs=(alex ar c2hs cpphs gcc ghc ghc-pkg ghcjs ghcjs-pkg greencard haddock happy
- haskell-suite haskell-suite-pkg hmake hpc hsc2hs hscolour jhc ld lhc lhc-pkg
- pkg-config strip tar uhc)
-
- for program in $programs; do
- _cabal_programs+=(
- "--with-${program}=[give the path to ${program}]:file:_files"
- "--${program}-options=[give extra options to ${program}]"
- "--${program}-option=[give an extra option to ${program}]"
- )
- done
-
- if (( CURRENT == 1 )) then
- _describe -t commands 'command' _cabal_cmds || compadd "$@"
- else
- local curcontext="$curcontext"
- cmd="${${_cabal_cmds[(r)$WORDS[2]:*]%%:*}}"
- if (( $#cmd )); then
- _call_function ret _cabal_$cmd
- else
- _message "unknown cabal command: $WORDS[2]"
- fi
- fi
-}
-
-_cabal_bench ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- '--benchmark-options=[give extra options to benchmark executables]' \
- '--benchmark-option=[give an extra option to benchmark executables (no need to quote options containing spaces)]' \
- {-j,--jobs=}'[run NUM jobs simultaneously]' \
- $_cabal_programs \
- "--only[don't reinstall add-source dependencies (sandbox-only)]"
-}
-
-_cabal_build ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- {-j,--jobs=}'[run NUM jobs simultaneously]' \
- $_cabal_programs \
- "--only[don't reinstall add-source dependencies (sandbox-only)]"
-}
-
-_cabal_check ()
-{
- _arguments {-h,--help}'[show help]'
-}
-
-_cabal_clean ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- {-s,--save-configure}'[do not remove the configuration file during cleaning; saves need to reconfigure]'
-}
-
-_cabal_configure ()
-{
- local context state state_descr line
- typeset -A opt_args
-
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- {-g,--ghc}'[compile with GHC]' \
- '--ghcjs[compile with GHCJS]' \
- '--jhc[compile with JHC]' \
- '--lhc[compile with LHC]' \
- '--uhc[compile with UHC]' \
- '--haskell-suite[compile with a haskell-suite compiler]' \
- {-w,--with-compiler=}'[give the path to a particular compiler]:file:_files' \
- '--with-hc-pkg=[give the path to the package tool]:file:_files' \
- '--prefix=[take this prefix in preparation of installation]:directory:_files -/' \
- '--bindir=[installation directory for executables]:directory:_files -/' \
- '--libdir=[installation directory for libraries]:directory:_files -/' \
- '--libsubdir=[subdirectory of libdir in which libs are installed]:directory:_files -/' \
- '--libexecdir=[installation directory for program executables]:directory:_files -/' \
- '--datadir=[installation directory for read-only data]:directory:_files -/' \
- '--datasubdir=[subdirectory of datadir in which data files are installed]:directory:_files -/' \
- '--docdir=[installation directory for documentation]:directory:_files -/' \
- '--htmldir=[installation directory for HTML]:directory:_files -/' \
- '--haddockdir=[installation directory for haddock interfaces]:directory:_files -/' \
- '--sysconfdir=[installation directory for configuration files]:directory:_files -/' \
- '--program-prefix=[prefix to be applied to installed executables]' \
- '--program-suffix=[suffix to be applied to installed executables]' \
- '--enable-library-vanilla[enable Vanilla libraries]' \
- '--disable-library-vanilla[disable Vanilla libraries]' \
- {-p,--enable-library-profiling}'[enable Library profiling]' \
- '--disable-library-profiling[disable Library profiling]' \
- '--enable-shared[enable Shared library]' \
- '--disable-shared[disable Shared library]' \
- '--enable-executable-dynamic[enable Executable dynamic linking]' \
- '--disable-executable-dynamic[disable Executable dynamic linking]' \
- '--enable-profiling[enable Executable profiling]' \
- '--disable-profiling[disable Executable profiling]' \
- {-O-,--enable-optimization=}'[build with optimization]:level:(0 1 2)' \
- '--disable-optimization[build without optimization]' \
- '--enable-debug-info=[emit debug info]:n:(0 1 2)' \
- "--disable-debug-info[don't emit debug info]" \
- '--enable-library-for-ghci[enable compile library for use with GHCi]' \
- '--disable-library-for-ghci[disable compile library for use with GHCi]' \
- '--enable-split-objs[enable split library into smaller objects]' \
- '--disable-split-objs[disable split library into smaller objects]' \
- '--enable-executable-stripping[enable strip executables upon installation]' \
- '--disable-executable-stripping[disable strip executables upon installation]' \
- '--enable-library-stripping[enable strip libraries upon installation]' \
- '--disable-library-stripping[disable strip libraries upon installation]' \
- '--configure-option=[extra option for configure]' \
- '--user[enable doing a per-user installation]' \
- '--global[disable doing a per-user installation]' \
- '--package-db=[use a given package database]:: :->default-db-or-filepath' \
- {-f,--flags=}'[force values for the given flags]:flags:' \
- '--extra-include-dirs=[a list of directories to search for header files]:directory:_files -/' \
- '--extra-lib-dirs=[a list of directories to search for externallibraries]:directory:_files -/' \
- '--extra-prog-path=[A list of directories to search for required programs]:directory:_files -/' \
- '--instantiate-with=[A mapping of signature names to concrete module instantiations]' \
- '--enable-tests[enable dependency checking and compilation for test suites]' \
- '--disable-tests[disable dependency checking and compilation for test suites]' \
- '--enable-coverage[enable build library and test suites with, Haskell Program Coverage enabled (GHC only)]' \
- '--disable-coverage[disable build library and test suites with, Haskell Program Coverage enabled (GHC only)]' \
- '--enable-benchmarks[enable dependency checking and compilation, for benchmarks]' \
- '--disable-benchmarks[disable dependency checking and compilation, for benchmarks]' \
- '--enable-relocatable[enable building a package that is relocatable (GHC only)]' \
- '--disable-relocatable[disable build a package that is relocatable (GHC only)]' \
- $_cabal_programs \
- '--cabal-lib-version=[select which version of the Cabal lib to use]' \
- '--constraint=[a list of additional constraints on the dependencies]' \
- '--preference=[specify preferences on the version of a package]' \
- '--solver=[select dependency solver to use]:solver:(topdown modular choose)' \
- '--allow-newer=[ignore upper bounds in dependencies on some or all packages]'
-
- case $state in
- (default-db-or-filepath)
- _alternative \
- ':default db:(global user clear)' \
- ':filepath:_files'
- ;;
- esac
-}
-
-_cabal_copy ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build]:directory:_files -/' \
- '--destdir=[directory to copy files to]:directory:_files -/'
-}
-
-_cabal_exec ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)'
-}
-
-_cabal_fetch ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--dependencies[resolve and fetch dependencies]' \
- '--no-dependencies[ignore dependencies]' \
- '--dry-run[do not install anything, only print what would be installed]' \
- '--solver=[select dependency solver to use]:solver:(topdown modular choose)]' \
- '--max-backjumps=[maximum number of backjumps allowed while solving dependencies]' \
- '--reorder-goals[try to reorder goals according to certain heuristics]' \
- '--shadow-installed-packages[if multiple package instances of the same version are installed, treat all but one as shadowed]' \
- '--strong-flags[do not defer flag choices]' \
- '*:package:_cabal_list_packages'
-}
-
-_cabal_freeze ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--dry-run[do not freeze anything, only print what would be frozen]' \
- '--enable-tests[enable freezing of the dependencies of any tests suites in the package description file]' \
- '--disable-tests[disable freezing of the dependencies of any tests suites in the package description file.]' \
- '--enable-benchmarks[enable freezing of the dependencies of any benchmarks suites in the package]' \
- '--disable-benchmarks[disable freezing of the dependencies of any benchmarks suites in the package]' \
- '--solver=[select dependency solver to use]:solver:(topdown modular choose)]' \
- '--max-backjumps=[maximum number of backjumps allowed while solving dependencies]' \
- '--reorder-goals[try to reorder goals according to certain heuristics]' \
- '--shadow-installed-packages[if multiple package instances of the same version are installed, treat all but one as shadowed]' \
- '--strong-flags[do not defer flag choices]'
-}
-
-_cabal_get ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- {-d-,--destdir=}'[where to unpack the packages]:directory:_files -/' \
- {-s,--source-repository=}"[copy the package's source repository]" \
- '--pristine[unpack the original pristine tarball, rather than updating the .cabal file with the latest revision from the package archive]' \
- '*:package:_cabal_list_packages'
-}
-
-_cabal_haddock ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated files]:directory:_files -/' \
- '--keep-temp-files[keep temporary files]' \
- '--hoogle[generate a hoogle database]' \
- '--html[generate HTML documentation]' \
- '--html-location=[location of HTML documentation]:url:' \
- '--executables[run haddock for Executables targets]' \
- '--tests[run haddock for Test Suite targets]' \
- '--benchmarks[run haddock for Benchmark targets]' \
- '--all[run haddock for all targets]' \
- '--internal[run haddock for internal modules]' \
- '--css=[path to the haddock stylesheet]:file:_files' \
- '--hyperlink-source[hyperlink the documentation to the source code]' \
- '--hscolour-css=[path to the HsColour stylesheet]:file:_files' \
- '--contents-location=[bake URL in as the location for the contents page]:url:' \
- '--with-ghc=[path to ghc]:file:_files' \
- '--with-haddock=[path to haddock]:file:_files' \
- '--PROG-option=[give an extra option to PROG (no need to quote options containing spaces)]:option:' \
- '--ghc-options=[give extra options to ghc]:option:' \
- '--haddock-options=[give extra options to haddock]:option:' \
-}
-
-_cabal_help ()
-{
- local -a cmds
- cmds=(update install help info list fetch user-config get init configure build clean run
- repl test bench check sdist upload report freeze haddock hscolour copy register sandbox exec)
- _arguments \
- {-h,--help}'[Show help]' \
- '*::command:( $cmds )'
-}
-
-_cabal_hscolour ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated files]:directory:_files -/' \
- '--executables[run hscolour for Executables targets]' \
- '--tests[run hscolour for Test Suite targets]' \
- '--benchmarks[run hscolour for Benchmarks targets]' \
- '--all[run hscolour for all targets]' \
- '--css=[path to stylesheet]:file:_files'
-}
-
-_cabal_info ()
-{
- local context state state_descr line
- typeset -A opt_args
-
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--package-db=[use a given package database]:: :->default-db-or-filepath' \
- '*:package:_cabal_list_packages'
-
- case $state in
- (default-db-or-filepath)
- _alternative \
- ':default db:(global user clear)' \
- ':filepath:_files'
- ;;
- esac
-}
-
-_cabal_install ()
-{
- local context state state_descr line
- typeset -A opt_args
-
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- {-g,--ghc}'[compile with GHC]' \
- '--ghcjs[compile with GHCJS]' \
- '--jhc[compile with JHC]' \
- '--lhc[compile with LHC]' \
- '--uhc[compile with UHC]' \
- '--haskell-suite[compile with a haskell-suite compiler]' \
- {-w,--with-compiler=}'[give the path to a particular compiler]:file:_files' \
- '--with-hc-pkg=[give the path to the package tool]:file:_files' \
- '--prefix=[take this prefix in preparation of installation]:directory:_files -/' \
- '--bindir=[installation directory for executables]:directory:_files -/' \
- '--libdir=[installation directory for libraries]:directory:_files -/' \
- '--libsubdir=[subdirectory of libdir in which libs are installed]:directory:_files -/' \
- '--libexecdir=[installation directory for program executables]:directory:_files -/' \
- '--datadir=[installation directory for read-only data]:directory:_files -/' \
- '--datasubdir=[subdirectory of datadir in which data files are installed]:directory:_files -/' \
- '--docdir=[installation directory for documentation]:directory:_files -/' \
- '--htmldir=[installation directory for HTML]:directory:_files -/' \
- '--haddockdir=[installation directory for haddock interfaces]:directory:_files -/' \
- '--sysconfdir=[installation directory for configuration files]:directory:_files -/' \
- '--program-prefix=[prefix to be applied to installed executables]' \
- '--program-suffix=[suffix to be applied to installed executables]' \
- '--enable-library-vanilla[enable Vanilla libraries]' \
- '--disable-library-vanilla[disable Vanilla libraries]' \
- {-p,--enable-library-profiling}'[enable Library profiling]' \
- '--disable-library-profiling[disable Library profiling]' \
- '--enable-shared[enable Shared library]' \
- '--disable-shared[disable Shared library]' \
- '--enable-executable-dynamic[enable Executable dynamic linking]' \
- '--disable-executable-dynamic[disable Executable dynamic linking]' \
- '--enable-profiling[enable Executable profiling]' \
- '--disable-profiling[disable Executable profiling]' \
- {-O-,--enable-optimization=}'[build with optimization]:level:(0 1 2)' \
- '--disable-optimization[build without optimization]' \
- '--enable-debug-info=[emit debug info]:n:(0 1 2)' \
- "--disable-debug-info[don't emit debug info]" \
- '--enable-library-for-ghci[enable compile library for use with GHCi]' \
- '--disable-library-for-ghci[disable compile library for use with GHCi]' \
- '--enable-split-objs[enable split library into smaller objects]' \
- '--disable-split-objs[disable split library into smaller objects]' \
- '--enable-executable-stripping[enable strip executables upon installation]' \
- '--disable-executable-stripping[disable strip executables upon installation]' \
- '--enable-library-stripping[enable strip libraries upon installation]' \
- '--disable-library-stripping[disable strip libraries upon installation]' \
- '--configure-option=[extra option for configure]' \
- '--user[enable doing a per-user installation]' \
- '--global[disable doing a per-user installation]' \
- '--package-db=[use a given package database]:: :->default-db-or-filepath' \
- {-f,--flags=}'[force values for the given flags]:flags:' \
- '--extra-include-dirs=[a list of directories to search for header files]:directory:_files -/' \
- '--extra-lib-dirs=[a list of directories to search for external libraries]:directory:_files -/' \
- '--extra-prog-path=[a list of directories to search for required programs]:directory:_files -/' \
- '--instantiate-with=[A mapping of signature names to concrete module instantiations]' \
- '--enable-tests[enable dependency checking and compilation for test suites]' \
- '--disable-tests[disable dependency checking and compilation for test suites]' \
- '--enable-coverage[enable build library and test suites with, Haskell Program Coverage enabled. (GHC only)]' \
- '--disable-coverage[disable build library and test suites with, Haskell Program Coverage enabled. (GHC only)]' \
- '--enable-benchmarks[enable dependency checking and compilation, for benchmarks]' \
- '--disable-benchmarks[disable dependency checking and compilation, for benchmarks]' \
- '--enable-relocatable[enable building a package that is relocatable (GHC only)]' \
- '--disable-relocatable[disable build a package that is relocatable (GHC only)]' \
- $_cabal_programs \
- '--cabal-lib-version=[select which version of the Cabal lib to use]' \
- '--constraint=[a list of additional constraints on the dependencies]' \
- '--preference=[specify preferences on the version of a package]' \
- '--solver=[select dependency solver to use]:solver:(topdown modular choose)' \
- '--allow-newer=[ignore upper bounds in dependencies on some or all packages]' \
- '--enable-documentation[enable building of documentation]' \
- '--disable-documentation[disable building of documentation]' \
- '--doc-index-file=[a central index of haddock API documentation]:file:_files' \
- '--dry-run[do not install anything]' \
- '--max-backjumps=[maximum number of backjumps allowed while solving dependencies]' \
- '--reorder-goals[try to reorder goals according to certain heuristics]' \
- '--shadow-installed-packages[if multiple package instances of the same version are installed, treat all but one as shadowed]' \
- '--strong-flags[do not defer flag choices]' \
- '--reinstall[always install]' \
- '--avoid-reinstalls[do not select versions that would destructively overwrite installed packages]' \
- '--force-reinstalls[reinstall packages even if they will most likely break other installed packages]' \
- '--upgrade-dependencies[pick the latest version for all dependencies, rather than trying to pick an installed version]' \
- {--only-dependencies,--dependencies-only}'[install only the dependencies necessary to build the given packages]' \
- '--root-cmd=[command used to gain root privileges]::' \
- '--symlink-bindir=[add symlinks into this directory]:directory:_files -/' \
- '--build-summary=[save build summaries to file]:file:_files' \
- '--build-log=[log all builds to file]:file:_files' \
- '--remote-build-reporting=[generate build reports to send to a remote]:level:(none anonymous detailed)' \
- '--remote-planning-failure[generate build reports when the dependency solver fails]' \
- '--one-shot[do not record the packages in the world file]' \
- '--run-tests[run package test suites during installation]' \
- {-j,--jobs=}'[run NUM jobs simultaneously]' \
- '--haddock-hoogle[generate a hoogle database]' \
- '--haddock-html[generate HTML documentation]' \
- '--haddock-html-location=[location of HTML documentation]:url:' \
- '--haddock-executables[run haddock for Executables targets]' \
- '--haddock-tests[run haddock for Test Suite targets]' \
- '--haddock-benchmarks[run haddock for Benchmarks targets]' \
- '--haddock-all[run haddock for all targets]' \
- '--haddock-internal[run haddock for internal modules]' \
- '--haddock-css=[path to the haddock stylesheet]:file:_files' \
- '--haddock-hyperlink-source[hyperlink the documentation to the source code]' \
- '--haddock-hscolour-css=[path to the HsColour stylesheet]:file:_files' \
- '--haddock-contents-location=[bake URL in as the location for the contents page]:url:' \
- '*:: :->package-or-cabal-file'
-
- case $state in
- (default-db-or-filepath)
- _alternative \
- ':default db:(global user clear)' \
- ':filepath:_files'
- ;;
- (package-or-cabal-file)
- _alternative \
- ':package:_cabal_list_packages' \
- ':files:_files -g "*.cabal"'
- ;;
- esac
-}
-
-_cabal_list ()
-{
- local context state state_descr line
- typeset -A opt_args
-
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--installed[only print installed packages]' \
- '--simple-output[print in a easy-to-parse format]' \
- '--package-db=[use a given package database]:: :->default-db-or-filepath' \
- '*:package:_cabal_list_packages'
-
- case $state in
- (default-db-or-filepath)
- _alternative \
- ':default db:(global user clear)' \
- ':filepath:_files'
- ;;
- esac
-}
-
-_cabal_register ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated files]:directory:_files -/' \
- "--user[register in user's local package database]" \
- "--global[register in the system-wide package database]" \
- '--inplace[register in build location]' \
- '--gen-script[generate a script to register later]' \
- '--gen-pkg-config=[generate package registration file]' \
- '--print-ipid[print the installed package ID calculated for this package]'
-}
-
-_cabal_repl ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- $_cabal_programs \
- "--only[don't reinstall add-source dependencies (sandbox-only)]"
-}
-
-_cabal_report ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- {-u,--username=}'[hackage username]' \
- {-p,--password=}'[hackage password]'
-}
-
-_cabal_run ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated build files]:directory:_files -/' \
- {-j,--jobs=}'[run NUM jobs simultaneously]' \
- $_cabal_programs \
- "--only[don't reinstall add-source dependencies (sandbox-only)]"
-}
-
-_cabal_sandbox ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--sandbox=[Sandbox location]:sandbox:_files -/'
-
- if (( $#WORDS == 2 )); then
- local -a _cabal_sandbox_cmds
- _cabal_sandbox_cmds=(
- 'init:initialize the sandbox'
- 'delete:remove the sandbox deleting all the packages installed inside'
- 'add-source:make one or more local package available in the sandbox'
- 'delete-source:remove an add-source dependency'
- 'list-sources:list add-source dependencies'
- 'hc-pkg:call sandbox related haskell compiler package database'
- )
- _describe -t sandbox-commands 'sandbox-command' _cabal_sandbox_cmds || compadd "$@"
- else
- case $WORDS[3] in
- add-source)
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--snapshot[take a snapshot instead of creating a link]' \
- '--sandbox=[Sandbox location]:sandbox:_files -/' \
- '*:sources:_files -/'
- ;;
- delete-source)
- _arguments \
- '*:sources:_files -/'
- ;;
- init | delete | list-sources | hc-pkg)
- _message 'no more arguments'
- ;;
- *)
- _message "unknown cabal sandbox command: $WORDS[3]"
- ;;
- esac
- fi
-}
-
-_cabal_sdist ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated files]:directory:_files -/' \
- "--list-sources=[just write a list of the package's sources to a file]:directory:_files -/" \
- '--snapshot[produce a snapshot source distribution]' \
- '--output-directory=[generate a source distribution in the given directory]:directory:_files -/' \
- '--targz[produce a .tar.gz format archive]' \
- '--zip[produce a .zip format archive]'
-}
-
-_cabal_test ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- '--builddir=[the directory where Cabal puts generated files]:directory:_files -/' \
- '--log=[log all test suite results to file]:file:_files' \
- '--machine-log=[produce a machine-readable log file]:file:_files' \
- '--show-details=[when to show results of individual test cases?]:filter:(always never failures)' \
- '--keep-tix-files[keep .tix files for HPC between test runs]' \
- '--test-options=[give extra options to test executables]' \
- '--test-option=[give an extra option to test executables]' \
- {-j,--jobs=}'[run NUM jobs simultaneously]' \
- $_cabal_programs \
- "--only[don't reinstall add-source dependencies (sandbox-only)]"
-}
-
-_cabal_update ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)'
-}
-
-_cabal_upload ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)' \
- {-c,--check}'[do not upload, just do QA checks]' \
- {-u-,--username=}'[hackage username]' \
- {-p-,--password=}'[hackage password]' \
- '*:file:_files -g "*.tar.gz"'
-}
-
-_cabal_list_packages () {
- _cabal_get_available_packages
- _cabal_get_available_files=(*.cabal)
- compadd "$@" -a -- _cabal_available_packages _cabal_get_available_files
-}
-
-_cabal_get_available_packages ()
-{
- if ( [[ ${+_cabal_available_packages} -eq 0 ]] || _cache_invalid CABAL_AVAILABLE_PACKAGES ) &&
- ! _retrieve_cache CABAL_AVAILABLE_PACKAGES;
- then
- _cabal_available_packages=( $(cabal list --simple-output | cut -d' ' -f1 | uniq) )
- _store_cache CABAL_AVAILABLE_PACKAGES _cabal_available_packages
- fi
-}
-
-_cabal_user-config ()
-{
- _arguments \
- {-h,--help}'[show help]' \
- {-v-,--verbose=}'[control verbosity]:level:(0 1 2 3)'
-
- if (( $#WORDS == 2 )); then
- local -a _cabal_user_config_cmds
- _cabal_user_config_cmds=(
- "diff:show a pseudo-diff of the user's ~/.cabal/config file and the default configuration"
- 'update:applies the pseudo-diff to the default configuration and write the result to ~/.cabal/config'
- )
- _describe -t user-config-commands 'user-config-command' _cabal_user_config_cmds || compadd "$@"
- else
- case $WORDS[3] in
- diff | update)
- _message 'no more arguments'
- ;;
- *)
- _message "unknown cabal user-config command: $WORDS[3]"
- ;;
- esac
- fi
-}
-
-_cabal "$@"
diff --git a/src/_gradle b/src/_gradle
deleted file mode 100644
index bed5861..0000000
--- a/src/_gradle
+++ /dev/null
@@ -1,139 +0,0 @@
-#compdef gradle gradlew
-# ------------------------------------------------------------------------------
-# Copyright (c) 2011 Github zsh-users - http://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 Gradle 1.0-milestone-5 (http://www.gradle.org).
-#
-# Status: incomplete (see TODO/FIXME tags)
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Julien Nicoulaud <julien.nicoulaud@gmail.com>
-#
-# ------------------------------------------------------------------------------
-
-# Wrapper Support
-if [[ $service == "gradlew" && -x "./gradlew" ]] ; then
- service="./$service"
-fi
-
-_gradle() {
- typeset -A opt_args
- local context state line
-
- local curcontext="$curcontext"
-
- _arguments \
- '(- 1 *)'{-?,-h,--help}'[show help message]' \
- '(-a --no-rebuild)'{-a,--no-rebuild}'[do not rebuild project dependencies]' \
- '(-b --build-file)'{-b,--build-file}'[specify the build file]:build file:_gradle_scripts' \
- '(-C --cache)'{-C,--cache}'[specify how compiled build scripts should be cached]:cache strategy:((rebuild\:rebuild\ the\ cache on\:use\ the\ cache\ \(default\)))' \
- '(-c --settings-file)'{-c,--settings-file}'[specify the settings file]:settings file:_gradle_scripts' \
- '*'{-D-,--system-prop}'[set system property of the JVM]:property:_gradle_properties' \
- '(-d --debug -q --quiet -i --info)'{-d,--debug}'[log in debug mode (includes normal stacktrace)]' \
- '(--foreground --no-daemon --stop)--daemon[use the Gradle daemon to run the build, starts the daemon if not running]' \
- '(-e --embedded)'{-e,--embedded}'[specify an embedded build script]:embedded build script' \
- '(--daemon --no-daemon --stop)--foreground[start the Gradle daemon in the foreground]' \
- '(-g --gradle-user-home)'{-g,--gradle-user-home}'[specify the gradle user home directory]: :_files -/' \
- '--gui[launch a GUI application]' \
- '(-I --init-script)'{-I,--init-script}'[specify an initialization script]:init script:_gradle_scripts' \
- '(-i --info -q --quiet -d --debug)'{-i,--info}'[set log level to info]' \
- '(-m --dry-run)'{-m,--dry-run}'[run the builds with all task actions disabled]' \
- '(-n --dependencies)'{-n,--dependencies}'[show list of all project dependencies]' \
- '--no-color[do not use color in the console output]' \
- '(--daemon --foreground --stop)--no-daemon[do not use the Gradle daemon to run the build]' \
- '--no-opt[ignore any task optimization]' \
- '*'{-P-,--project-prop}'[set project property for the build script]:property:_gradle_properties' \
- '(-p --project-dir)'{-p,--project-dir}'[specify the start directory for Gradle]: :_files -/' \
- '--profile[profile build execution time and generate a report in the <build_dir>/reports/profile directory]' \
- '(-q --quiet -d --debug -i --info)'{-q,--quiet}'[log errors only]' \
- '(-r --properties)'{-r,--properties}'[show list of all available project properties]' \
- '(-S --full-stacktrace)'{-S,--full-stacktrace}'[print out the full (very verbose) stacktrace for any exceptions]' \
- '(-s --stacktrace)'{-s,--stacktrace}'[print out the stacktrace also for user exceptions]' \
- '(--daemon --foreground)--stop[stop the Gradle daemon if it is running]' \
- '(-t --tasks)'{-t,--tasks}'[show list of available tasks]' \
- '(-u --no-search-upward)'{-u,--no-search-upward}'[don'\''t search in parent folders for a settings.gradle file]' \
- '(-v --version)'{-v,--version}'[print version info]' \
- '(-x --exclude-task)*'{-x,--exclude-task}'[specify a task to be excluded from execution]:task:_gradle_tasks' \
- '*: :_gradle_tasks'
-}
-
-(( $+functions[_gradle_tasks] )) ||
-_gradle_tasks() {
- local alternatives task_group task_group_name task_group_tasks
- local project="${PREFIX%:*}"
- alternatives=("project:project:_gradle_projects -qS:")
- for task_group in ${(M)${(ps:\n\n:)"$($service --daemon --quiet --no-color ${project}:tasks 2>/dev/null)"}:#*[[:space:]]\-[[:space:]]*}; do
- task_group_name="${${${task_group%%---*}%[[:space:]]tasks[[:space:]]*}:l}"
- task_group_tasks=(${(q)${(f)${task_group##*---}}/[[:space:]]\-[[:space:]]/:})
- alternatives+=("${task_group_name//[[:space:]]/-}-task:${task_group_name} task:((${task_group_tasks[@]}))")
- done
- _alternative "${alternatives[@]}"
-}
-
-(( $+functions[_gradle_projects] )) ||
-_gradle_projects() {
- local project="${PREFIX%:*}"
- local projects; projects=(${${${(M)${(f)"$($service --daemon --quiet --no-color ${project}:projects 2>/dev/null)"}:#*--- Project\ \':*}#*\'}%\'*})
- _multi_parts $@ : projects
-}
-
-(( $+functions[_gradle_scripts] )) ||
-_gradle_scripts() {
- _files -g '*.gradle*'
-}
-
-(( $+functions[_gradle_properties] )) ||
-_gradle_properties() {
- local ret=1
- if compset -P '*='; then
- _message -e property-values 'property value' && ret=0
- else
- _wanted property-names expl 'property name' _gradle_property_names -qS= && ret=0
- fi
- return ret
-}
-
-(( $+functions[_gradle_property_names] )) ||
-_gradle_property_names() {
- local property_names; property_names=(${${(M)${(f)"$($service --daemon --quiet --no-color :properties 2>/dev/null)"}:#*:*}%%:*})
- _describe -t property_names 'property name' property_names "$@"
-}
-
-_gradle "$@"
-
-# 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
diff --git a/src/_mosh b/src/_mosh
deleted file mode 100644
index f0c8a9d..0000000
--- a/src/_mosh
+++ /dev/null
@@ -1,35 +0,0 @@
-#compdef mosh
-# ------------------------------------------------------------------------------
-# Description
-# -----------
-#
-# Completion script for mosh (http://mosh.mit.edu).
-#
-# Source: https://gist.github.com/2242920
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Ben O'Hara (https://github.com/benohara)
-#
-# ------------------------------------------------------------------------------
-
-_arguments \
- '--client=:client helper:_command_names -e' \
- '--server=:server helper:_files' \
- '--ssh=:ssh command to run:_files' \
- '(-a -n)--predict=:when:(adaptive always never)' \
- '(--predict -n)-a[predict always]' \
- '(--predict -a)-n[predict never]' \
- {-p,--port=}':port:_ports' \
- ':remote:_hosts' \
- ':remote command:_command_names -e'
-
-# 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
diff --git a/src/_nl b/src/_nl
deleted file mode 100644
index 53db404..0000000
--- a/src/_nl
+++ /dev/null
@@ -1,56 +0,0 @@
-#compdef nl
-# ------------------------------------------------------------------------------
-# Description
-# -----------
-#
-# Completion script for GNU nl (coreutils 8.13).
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * github.com/RobSis
-#
-# ------------------------------------------------------------------------------
-
-local arguments style_values format_values ret=1
-
-style_values=(
- "a:number all lines"
- "t:number only nonempty lines"
- "n:number no lines"
- "pBRE:number only lines that contain a match for the basic regular expression, BRE"
-)
-
-format_values=(
- "ln:left justified, no leading zeros"
- "rn:right justified, no leading zeros"
- "rz:right justified, leading zeros"
-)
-
-_arguments -C -s -S \
- {-b+,--body-numbering=}'[use STYLE for given number of lines]:style:->style' \
- {-d+,--section-delimiter=}'[use CC for separating logical pages]' \
- {-f+,--footer-numbering=}'[use STYLE for numbering footer lines]:style:->style' \
- {-h+,--header-numbering=}'[use STYLE for numbering header lines]:style:->style' \
- {-i+,--line-increment=}'[line number increment at each line]' \
- {-l+,--join-blank-lines=}'[group of NUMBER empty lines counted as one]' \
- {-n+,--number-format=}'[insert line numbers according to FORMAT]:format:->format' \
- {-p,--no-renumber}'[do not reset line numbers at logical pages]' \
- {-s+,--number-separator=}'[add STRING after (possible) line number]' \
- {-v+,--starting-line-number=}'[first line number on each logical page]' \
- {-w+,--number-width=}'[use NUMBER columns for line numbers]' \
- --help'[display help and exit]' \
- --version'[output version information and exit]' \
- '*:filename:_files' && ret=0
-
-case "$state" in
- (style)
- _describe -t style style style_values && ret=0
- ;;
- (format)
- _describe -t format format format_values && ret=0
- ;;
-esac
-
-return $ret
diff --git a/src/_ps b/src/_ps
deleted file mode 100644
index a0755d4..0000000
--- a/src/_ps
+++ /dev/null
@@ -1,102 +0,0 @@
-#compdef ps
-
-# This works with procps version 3.2.8
-
-local context state state_descr line
-typeset -A opt_args
-local filterexcl="(-A -a -C -d -e -g -G --group --Group -p --pid --ppid -s --sid -t --tty -u -U --user --User)"
-
-_arguments -s -w \
- "$filterexcl-A[all processes]"\
- "$filterexcl-a[all w/ tty except session leaders]"\
- "--cumulative[include some dead child process data (as a sum with the parent)]"\
- "(-f -F --format -l -o -O)--context[display security context format (for SE Linux)]"\
- "-c[show different scheduler information]"\
- "$filterexcl-C[by command name]:processes:->pname"\
- "(--columns)--cols[set screen width]:width:( )"\
- "(--cols)--columns[set screen width]:width:( )"\
- "--deselect[negate selection]"\
- "$filterexcl-d[all except session leaders]"\
- "$filterexcl-e[all processes]"\
- "--forest[ASCII art process tree]"\
- "(--context -F --format -o -O)-f[full format listing]"\
- "(--context -f --format -o -O)-F[extra full format]"\
- "(--context -f -F -j -l -o -O)--format[user-defined format]:output format:->format"\
- "$filterexcl-g[by session OR by effective group name]:groups:_groups"\
- "$filterexcl-G[by real group ID (supports names)]:groups:->rgid"\
- "$filterexcl--group[by session OR by effective group name]:groups:_groups"\
- "$filterexcl--Group[by real group ID (supports names)]:groups:->rgid"\
- "-H[show process hierarchy]"\
- "(--no-heading)--heading[repeat header lines, one per page of output]"\
- "-j[jobs format]"\
- "-l[long format. the -y option is often useful with this]"\
- "-L[show threads, possibly with LWP and NLWP columns]"\
- "-m[show threads after processes]"\
- "-M[add a column of security data]"\
- "-N[negate selection]"\
- "(--heading --header)--no-heading[omit header lines]"\
- "(--context -f -F --format -j -l)-o[user-defined format]:output format:->format"\
- "(--context -f -F --format -j -l)-O[preloaded -o (user-defined with some)]:output format:->format"\
- "$filterexcl-p[by process ID]:process IDs:->pid"\
- "$filterexcl--pid[by process ID]:process IDs:->pid"\
- "$filterexcl--ppid[select by parent process ID]:process IDs:->ppid"\
- "--rows[set screen height.]:height:( )"\
- "$filterexcl-s[by session IDs]:sessions:->sid"\
- "$filterexcl--sid[by session IDs]:sessions:->sid"\
- "--sort[specify sorting order]:sort specs:->sortspec"\
- "$filterexcl-t[by tty]:ttys:->tty"\
- "-T[show threads, possibly with SPID column]"\
- "$filterexcl--tty[by tty]:ttys:->tty"\
- "$filterexcl-u[by effective user ID (supports names)]:users:_users"\
- "$filterexcl-U[by real user ID (supports names)]:users:_users"\
- "$filterexcl--user[by effective user ID (supports names)]:users:_users"\
- "$filterexcl--User[by real user ID (supports names)]:users:_users"\
- "(--version)-V[print the procps version]"\
- "(-V)--version[print the procps version]"\
- "-w[wide output]"\
- "-y[use with -l, do not show flags, show rss in place of addr]"\
- "1:BSD-style options (complete - to see unix & gnu-style options):((T\:'all processes on this terminal' a\:'all w/ tty, including other users' r\:'only running processes' x\:'processes w/o controlling ttys' t\:'list by tty' j\:'BSD jobs control format' l\:'BSD long format' s\:'signal format' v\:'virtual memory format' u\:'user-oriented format' X\:'register format' L\:'list format codes' S\:'sum info of children into parents' c\:'true command name' n\:'numeric WCHAN & UID' H\:'show threads as if they were processes' U\:'by effective user ID' p\:'by process ID'))"\
- - debug "--info[print debugging info]"
-
-case "$state" in
- pid)
- _values -s , 'process id' "${(uonzf)$(ps -A o pid=)}"
- ;;
- rgid)
- _values -s , 'process group id' "${(uonzf)$(ps -A o rgid=)}"
- ;;
- pname)
- local ispat="pattern matching "
- if (( ${+opt_args[-x]} ))
- then
- ispat=""
- fi
- if (( ${+opt_args[-f]} ))
- then
- _wanted pname expl $ispat'process command line' compadd ${(u)${(f)"$(ps -A o cmd=)"}}
- else
- _wanted pname expl $ispat'process name' compadd ${(u)${(f)"$(ps -A co cmd=)"}}
- fi
- ;;
- sid)
- _values -s , 'session id' "${(uonzf)$(ps -A o sid=)}"
- ;;
- tty)
- local -a ttys
- ttys=( /dev/tty*(N) /dev/pts/*(N) )
- _values -s , 'terminal device' ${ttys#/dev/}
- ;;
- ppid)
- _values -s , 'parent process id' "${(uonzf)$(ps -A o ppid=)}"
- ;;
- sortspec)
- _values -s , 'format specifier (prefix with - for decreasing order)' "${(uozf)$(ps L|cut -f 1 -d" ")}"
- ;;
- format)
- _values -s , 'format specifier' "${(uozf)$(ps L|cut -f 1 -d" ")}"
- ;;
-esac
-
-# Local Variables:
-# mode:shell-script
-# End:
diff --git a/src/_qdbus b/src/_qdbus
deleted file mode 100644
index d665c7a..0000000
--- a/src/_qdbus
+++ /dev/null
@@ -1,112 +0,0 @@
-#compdef qdbus
-#
-# Copyright (C) 2015 Thomas Mitterfellner <thomas.mitterfellner@gmail.com>
-#
-# This file is released under the GPLv2.
-#
-# version 0.1
-
-# get the type of a method: 1 means function, 2 means property
-getType () {
- case "$1" in
- "method"*) echo 1 ;;
- "property"*) echo 2 ;;
- *) echo 0 ;;
- esac
-}
-
-# get the index of a method in an array of methods
-getIndex () {
- local e
- local index
- local type_
- index=0
- for e in "${@:2}"; do
- index=$(( index + 1 ))
- type_=$(getType "$e")
- if [[ $type_ == 1 ]] ; then
- if [[ "$e" == *"$1("* ]] ; then
- echo $index
- return 0
- fi
- elif [[ $type_ == 2 ]] ; then
- if [[ "$e" == *"$1" ]] ; then
- echo $index
- return 0
- fi
- fi
- done
- echo 0
-}
-
-_qdbus() {
- local curcontext="$curcontext" state line
- local services
- local path_
- local methods
- local names
- local types
- local properties
- local index
- typeset -A opt_args
-
- _arguments "--system[connect to system bus]"\
- "--literal[print literal replies]"\
- "1:service name:->service"\
- "2:path:->path"\
- "3:method:->method"\
- "*:arguments:->arguments"
-
- case $state in
- service)
- services=( $(qdbus ${words[@]:1:-1} | grep -E '^([^:])') )
- compadd "$@" $services
- ;;
-
- path)
- path_=( $(qdbus ${words[@]:1:-1} 2>/dev/null) )
-
- compadd "$@" $path_
- ;;
-
- method)
- IFS=$'\n'
- methods=( $(qdbus ${words[@]:1:-1} | \
- grep -e "^method" | \
- sed -r 's/method (.+) (.+)\((.*)\)/\2:\1(\3)/g' 2>/dev/null) )
- properties=( $(qdbus ${words[@]:1:-1} | \
- grep -e "^property" | \
- sed -r 's/property (.+) (.+) (.+)/\3:\1 \2/g' 2>/dev/null) )
-
- _describe properties properties -J properties
- _describe methods methods -J methods
- ;;
-
- arguments)
- IFS=$'\n'
-
- path_pos=$(( ${(M)#words:#--*} + 2))
- method_pos=$(( $path_pos + 2))
- names=( $(qdbus ${words[@]:1:$path_pos} | grep -e '^[mp]' 2>/dev/null) )
- index=$(getIndex "${words[$method_pos]}" $names[@])
- method=$names[$index]
-
- arg_pos=$(( ${#words} - $method_pos ))
- if [[ $(getType "$method") -eq 1 ]] ; then
- method_args="$(echo $method | sed -r 's/(.+) (.+) (.+)\((.*)\)/\4/g')"
- IFS=$',' method_args_=(${=method_args})
- num_args=${#method_args_}
- if [[ $arg_pos -le $num_args ]] ; then
- _message "${method_args_[$arg_pos]}"
- fi
- else
- property_=$(echo "$method" |\
- sed -r 's/property (.+) (.+) (.+)/\1 \2/g')
- if [[ $arg_pos -eq 1 ]] ; then
-
- _message ${property_}
- fi
- fi
- ;;
- esac
-}
diff --git a/src/_watch b/src/_watch
deleted file mode 100644
index 63bcddb..0000000
--- a/src/_watch
+++ /dev/null
@@ -1,55 +0,0 @@
-#compdef watch
-# ------------------------------------------------------------------------------
-# Copyright (c) 2014 Github zsh-users - http://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 watch (https://gitorious.org/procps/procps).
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Nicolas Iooss (https://github.com/fishilico)
-#
-# ------------------------------------------------------------------------------
-
-_arguments \
- '(-b --beep)'{-b,--beep}'[beep if command has a non-zero exit]' \
- '(-c --color)'{-c,--color}'[interpret ANSI color sequences]' \
- '(-d --differences)'{-d,--differences}'[highlight changes between updates]' \
- '(-d --differences)--differences=permanent[highlight changes since the first iteration]' \
- '(-e --errexit)'{-e,--errexit}'[exit if command has a non-zero exit]' \
- '(-g --chgexit)'{-g,--chgexit}'[exit when output from command changes]' \
- '(-n --interval)'{-n,--interval}'[seconds to wait between updates]:interval:' \
- '(-p --precise)'{-p,--precise}'[attempt run command in precise intervals]' \
- '(-t --no-title)'{-t,--no-title}'[turn off showing the header]' \
- '(-x --exec)'{-x,--exec}'[pass command to exec instead of "sh -c"]' \
- '(-h --help)'{-h,--help}'[display help information]' \
- '(-v --version)'{-v,--version}'[output version information]' \
- '(-):command: _command_names -e' \
- '*::arguments: _normal'
diff --git a/src/_zfs b/src/_zfs
deleted file mode 100644
index d742c12..0000000
--- a/src/_zfs
+++ /dev/null
@@ -1,597 +0,0 @@
-#compdef zfs
-# ------------------------------------------------------------------------------
-# Copyright (c) 2014 Github zsh-users - http://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 zfs
-#
-# Source: https://github.com/zsh-users/zsh/blob/master/Completion/Unix/Command/_zfs
-#
-# ------------------------------------------------------------------------------
-# Authors
-# -------
-#
-# * Rick van Hattem (https://github.com/wolph)
-#
-# ------------------------------------------------------------------------------
-# Synced with the S11U1 man page
-
-_zfs() {
- local context state line expl
- typeset -A opt_args
- local -a subcmds rw_properties rw_propnames ro_properties create_properties
- local -a share_nfs_ro_properties share_nfs_rw_properties
- local -a share_smb_ro_properties share_nfs_rw_properties
- local -a share_ro_properties share_rw_properties
- local -a difffields delegatable_perms
-
- subcmds=(
- "create" "destroy" "clone" "promote" "rename" "snapshot"
- "rollback" "list" "set" "get" "inherit" "mount" "unmount"
- "share" "unshare" "send" "receive" "allow" "unallow"
- "upgrade" "userspace" "groupspace" "hold" "holds" "release"
- "diff" "key" "help"
- )
-
- share_nfs_ro_properties=(
- "share.nfs.all"
- )
-
- share_nfs_rw_properties=(
- "share.nfs:value:(on off)"
- "share.nfs.aclok:value:(on off)"
- "share.nfs.acflfab:value:(on off)"
- "share.nfs.anon:uid:"
- "share.nfs.charset.euc-cn:access-list:"
- "share.nfs.charset.euc-jpms:access-list:"
- "share.nfs.charset.euc-kr:access-list:"
- "share.nfs.charset.euc-tw:access-list:"
- "share.nfs.charset.iso8859-1:access-list:"
- "share.nfs.charset.iso8859-2:access-list:"
- "share.nfs.charset.iso8859-5:access-list:"
- "share.nfs.charset.iso8859-6:access-list:"
- "share.nfs.charset.iso8859-7:access-list:"
- "share.nfs.charset.iso8859-8:access-list:"
- "share.nfs.charset.iso8859-9:access-list:"
- "share.nfs.charset.iso8859-13:access-list:"
- "share.nfs.charset.iso8859-15:access-list:"
- "share.nfs.charset.koi8-r:access-list:"
- "share.nfs.index:file:_files"
- "share.nfs.log:nfslog.conf tag:"
- "share.nfs.nosub:value:(on off)"
- "share.nfs.nosuid:value:(on off)"
- "share.nfs.public:value:(on off)"
- "share.nfs.sec:security-mode-list:"
- "share.nfs.sec.default.none:access-list:"
- "share.nfs.sec.default.ro:access-list:"
- "share.nfs.sec.default.root:access-list:"
- "share.nfs.sec.default.root_mapping:uid:"
- "share.nfs.sec.default.rw:access-list:"
- "share.nfs.sec.default.window:seconds"
- "share.nfs.sec.dh.none:access-list:"
- "share.nfs.sec.dh.ro:access-list:"
- "share.nfs.sec.dh.root:access-list:"
- "share.nfs.sec.dh.root_mapping:uid:"
- "share.nfs.sec.dh.rw:access-list:"
- "share.nfs.sec.dh.window:seconds"
- "share.nfs.sec.krb5.none:access-list:"
- "share.nfs.sec.krb5.ro:access-list:"
- "share.nfs.sec.krb5.root:access-list:"
- "share.nfs.sec.krb5.root_mapping:uid:"
- "share.nfs.sec.krb5.rw:access-list:"
- "share.nfs.sec.krb5.window:seconds"
- "share.nfs.sec.krb5i.none:access-list:"
- "share.nfs.sec.krb5i.ro:access-list:"
- "share.nfs.sec.krb5i.root:access-list:"
- "share.nfs.sec.krb5i.root_mapping:uid:"
- "share.nfs.sec.krb5i.rw:access-list:"
- "share.nfs.sec.krb5i.window:seconds"
- "share.nfs.sec.krb5p.none:access-list:"
- "share.nfs.sec.krb5p.ro:access-list:"
- "share.nfs.sec.krb5p.root:access-list:"
- "share.nfs.sec.krb5p.root_mapping:uid:"
- "share.nfs.sec.krb5p.rw:access-list:"
- "share.nfs.sec.krb5p.window:seconds"
- "share.nfs.sec.none.none:access-list:"
- "share.nfs.sec.none.ro:access-list:"
- "share.nfs.sec.none.root:access-list:"
- "share.nfs.sec.none.root_mapping:uid:"
- "share.nfs.sec.none.rw:access-list:"
- "share.nfs.sec.none.window:seconds"
- "share.nfs.sec.sys.none:access-list:"
- "share.nfs.sec.sys.ro:access-list:"
- "share.nfs.sec.sys.root:access-list:"
- "share.nfs.sec.sys.root_mapping:uid:"
- "share.nfs.sec.sys.rw:access-list:"
- "share.nfs.sec.sys.window:seconds"
- )
-
- share_smb_ro_properties=(
- "share.smb.all"
- )
-
- share_smb_rw_properties=(
- "share.smb:value:(on off)"
- "share.smb.ad-container"
- "share.smb.abe"
- "share.smb.csc:value:(disabled manual auto vdo)"
- "share.smb.catia:value:(on off)"
- "share.smb.dfsroot:value:(on off)"
- "share.smb.guestok:value:(on off)"
- "share.smb.ro:access-list:"
- "share.smb.rw:access-list:"
- "share.smb.none:access-list:"
- )
-
- share_ro_properties=(
- "share.all"
- "share.fs"
- "share.name"
- "share.point"
- "share.protocols"
- "share.state"
- $share_nfs_ro_properties
- $share_smb_ro_properties
- )
-
- share_rw_properties=(
- "share.desc:description:"
- "share.noauto:value:(on off)"
- "share.path:path:"
- $share_nfs_rw_properties
- $share_smb_rw_properties
- )
-
- # TODO: userused@ and groupused@ could have more extensive handling
- ro_properties=(
- "name" "type" "creation" "used" "available" "referenced"
- "compressratio" "mounted" "origin" "usedbychildren"
- "usedbydataset" "usedbyrefreservation" "usedbysnapshots"
- "defer_destroy" "userused@" "userrefs" "groupused@"
- "keychangedate" "keystatus" "rekeydate"
- $share_ro_properties
- )
-
- # TODO: Be cleverer about what values can be set. Is there any way to
- # set the sorting for *size properties to false by default?
- rw_properties=(
- "aclinherit:value:(discard noallow restricted passthrough passthrough-x)"
- "aclmode:value:(discard mask passthrough)"
- "atime:value:(on off)"
- "canmount:value:(on off noauto)"
- "checksum:value:(on off fletcher2 fletcher4 sha256 sha256+mac)"
- "compression:value:(on off lzjb gzip gzip-{1..9} zle)"
- "copies:value:(1 2 3)"
- "dedup:value:(on off verify sha256 sha256,verify)"
- "devices:value:(on off)"
- "encryption:value:(off on aes128-ccm aes-192-ccm aes-256-ccm aes-128-gcm aes-192-gcm aes-256-gcm)"
- "exec:value:(on off)"
- "groupquota@:value:" # TODO: complete group=size|none
- "keysource:value:_zfs_keysource_props"
- "logbias:value:(latency throughput)"
- "mlslabel:value:(none)" # TODO: list sensitivity labels
- "mountpoint:path, 'legacy', or 'none':{if [[ -prefix /* ]]; then _path_files -/; else _wanted mountpoints expl 'mountpoint (type \"/\" to start completing paths)' compadd legacy none; fi}"
- "multilevel:value:(on off)"
- "nbmand:value:(on off)"
- "primarycache:value:(all none metadata)"
- "quota:number or 'none':{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == quota= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'quota' compadd none; fi}"
- "readonly:value:(on off)"
- "recordsize:value:(512 1K 2K 4K 8K 16K 32K 64K 128K 256K 512K 1M)"
- "refquota:number or 'none':{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == refquota= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'refquota' compadd none; fi}"
- "refreservation:number or 'none':{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == refreservation= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'refreservation' compadd none; fi}"
- "reservation:value:{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == reservation= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'reservation' compadd none; fi}"
- "rstchown:value:(on off)"
- "secondarycache:value:(all none metadata)"
- "setuid:value:(on off)"
- "shadow:value:" # TODO: complete URI|none
- "share:share properties:"
- "snapdir:value:(hidden visible)"
- "sync:value:(standard always disabled)"
- "userquota@:value:" # TODO: complete user=size|none
- "version:value:(1 2 3 4 current)"
- "volsize:value:" # <size>
- "vscan:value:(on off)"
- "xattr:value:(on off)"
- "zoned:value:(on off)"
- $share_rw_properties
- )
-
- create_properties=(
- $rw_properties
- "casesensitivity:value:(sensitive insensitive mixed)"
- "normalization:value:(none formC formD formKC formKD)"
- "utf8only:value:(on off)"
- "volblocksize:value:(512 1K 2K 4K 8K 16K 32K 64K 128K 256K 512K 1M)"
- )
-
- delegatable_perms=(
- "allow" "clone" "create" "destroy" "diff" "hold" "key"
- "keychange" "mount" "promote" "receive" "release" "rename"
- "rollback" "send" "share" "snapshot"
- "groupused" "userused" "userprop"
- ${create_properties%%:*}
- )
-
- rw_propnames=( ${rw_properties%%:*} )
-
- difffields=(
- object parent size links linkschange name oldname user group
- ctime mtime atime crtime
- )
-
- if [[ $service == "zfs" ]]; then
- _arguments -C -A "-*" \
- '-\?[Help]' \
- '*::command:->subcmd' && return 0
-
- if (( CURRENT == 1 )); then
- _wanted commands expl "zfs subcommand" compadd -a subcmds
- return
- fi
- service="$words[1]"
- curcontext="${curcontext%:*}=$service:"
- fi
-
- case $service in
- ("create")
- _arguments -A "-*" \
- '-p[Create parent datasets]' \
- '-u[Filesystem is not mounted]' \
- '-o[Set initial properties]:property:_values -s , "property" $create_properties' \
- - set1 \
- ':filesystem:_zfs_dataset -t fs -e "parent dataset"' \
- - set2 \
- '-s[Create sparse volume]' \
- '-b[Set volblocksize]:blocksize:' \
- '-V[Set size]:size:' \
- ':volume:_zfs_dataset -t fs -e "parent dataset"'
- ;;
-
- ("destroy")
- _arguments -A "-*" \
- '-r[Recursively destroy all children]' \
- '-R[Recursively destroy all dependents]' \
- '-n[Do a dry run (No-op)]' \
- '-p[Display numbers exactly]' \
- '-v[Verbose]' \
- - set1 \
- '-d[delete or mark deferred]' \
- ':snapshot:_zfs_dataset -t snap' \
- - set2 \
- '-f[Force unmounts]' \
- ':filesystem/volume/snapshot:_zfs_dataset -t fs -t vol'
- ;;
-
- ("snapshot")
- _arguments -A "-*" \
- '-r[Recursively snapshot all descendant datasets]' \
- '-o[Set property]:property:_values -s , "property" $create_properties' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol -S@'
- ;;
-
- ("rollback")
- _arguments -A "-*" \
- '-r[Recursively destroy more recent snapshots]' \
- '-R[Recursively destroy more recent snapshots and clones]' \
- '-f[Force unmounts]' \
- ':snapshot:_zfs_dataset -t snap'
- ;;
-
- ("clone")
- # XXX needs to bail if there are no snapshots
- _arguments -A "-*" \
- '-p[Create parent datasets]' \
- '-K[Create encryption key]' \
- '-o[Set property]:property:_values -s , "property" $create_properties' \
- ':snapshot:_zfs_dataset -t snap' \
- ':filesystem/volume:_zfs_dataset -t fs -e "parent dataset"'
- ;;
-
- ("promote")
- _arguments \
- ':filesystem:_zfs_dataset -t clone' \
- ;;
-
- ("rename")
- _arguments -A "-*" \
- '(-r)-p[Create parent datasets]' \
- '(-p)-r[Recursively rename snapshots of all descendent datasets]' \
- '-u[Do not remount file systems]' \
- '-f[Force unmounts]' \
- ':dataset:_zfs_dataset -r1' \
- ':dataset:_zfs_dataset -r2'
- ;;
-
- ("list")
- _arguments -A "-*" \
- '-r[Recursively display children]' \
- '-H[Scripting mode]' \
- '-d[Depth]:value:' \
- '-o[Properties to list]:property:_values -s , "property" $ro_properties $rw_propnames' \
- '*-s[Sort key (ascending)]:property:_values "property" $ro_properties $rw_propnames' \
- '*-S[Sort key (descending)]:property:_values "property" $ro_properties $rw_propnames' \
- '-t[Dataset types to list]:dataset type:_values -s , "dataset type" all filesystem snapshot volume' \
- '*:filesystem/volume/snapshot/path:_zfs_dataset -p'
- ;;
-
- ("set")
- _arguments \
- '-r[Recursively apply value]' \
- ':property:_values -s , "property" $rw_properties' \
- '*:filesystem/volume:_zfs_dataset -t fs -t vol'
- ;;
-
- ("get")
- _arguments -A "-*" \
- "-r[Recursively display children's properties]" \
- '-d[Depth]:value:' \
- '-H[Scripting mode]' \
- '-p[Display numbers exactly]' \
- '-s[Specify sources]:source:_values -s , "source" local default inherited temporary none' \
- '-o[Specify fields]:field:_values -s , "field" name property value source' \
- ':property:_values -s , "property" $ro_properties $rw_propnames all' \
- '*:filesystem/volume/snapshot:_zfs_dataset'
- ;;
-
- ("inherit")
- _arguments -A "-*" \
- '-r[Recursively inherit property for all children]' \
- '-S[Revert to received property value]' \
- ':property:_values -s , "property" $ro_properties $rw_properties' \
- '*:filesystem/volume:_zfs_dataset -t fs -t vol'
- ;;
-
- ("userspace"|"groupspace")
- _arguments -A "-*" \
- '-n[Print numeric ID]' \
- '-H[Tab-delimited output with no headers]' \
- '-p[Parseable mode]' \
- '-o[Properties to list]:property:_values -s , "property" type name used quota' \
- '*-s[Sort key (ascending)]:property:_values "property" type name used quota' \
- '*-S[Sort key (descending)]:property:_values "property" type name used quota' \
- '-t[Types to list]:type:_values -s , "type" all posixuser smbuser posixgroup smbgroup' \
- '-i[Translate SID to POSIX ID]' \
- '*:filesystem/volume/snapshot:_zfs_dataset'
- ;;
-
- ("mount")
- _arguments -A "-*" \
- '-o[Mount options]:mount options:_values -s , "option" {,no}{devices,exec,setuid} ro rw' \
- '-O[Overlay mount]' \
- '-v[Report mount progress]' \
- - set1 \
- ':filesystem:_zfs_dataset -t fs' \
- - set2 \
- '-a[Mount all available ZFS filesystems]'
- ;;
-
- ("unmount")
- _arguments -A "-*" \
- - set1 \
- '-f[Force unmount]' \
- ':filesystem:_zfs_dataset -t fs -t mtpt' \
- - set2 \
- '-a[Unmount all ZFS filesystems]'
- ;;
-
- ("share")
- _arguments -A "-*" \
- - set1 \
- '-a[Share all available ZFS filesystems]' \
- - set2 \
- '-r[Share filesystems recursively]' \
- ':filesystem:_zfs_dataset -t fs' \
- - set3 \
- '*-o[Create a share with these properties]:property:_values -w "share properties" $share_rw_properties' \
- '-u[Create a share without sharing it]' \
- ':filesystem:_zfs_dataset -t fs' \
- - set4 \
- ':filesystem:_zfs_dataset -t fs -t mtpt -t share'
- ;;
-
- ("unshare")
- _arguments -A "-*" \
- - set1 \
- '-a[Unshare all shared ZFS filesystems]' \
- - set2 \
- '-r[Unshare filesystems recursively]' \
- ':filesystem:_zfs_dataset -t fs' \
- - set3 \
- ':filesystem:_zfs_dataset -t fs -t mtpt -t share'
- ;;
-
- ("send")
- _arguments -A "-*" \
- '-b' \
- '-i[Generate an incremental stream]:snapshot:_zfs_dataset -t snap' \
- '-D[Perform dedup processing]' \
- '-p[Send properties]' \
- '-n[Do a dry run (No-op)]' \
- '-P[Display numbers exactly]' \
- '-v[Verbose]' \
- - set1 \
- '-I[Generate an incremental stream with intermediary snapshots]:snapshot:_zfs_dataset -t snap' \
- '-R[Generate a replication stream package]' \
- ':snapshot:_zfs_dataset -t snap' \
- - set2 \
- '-c[Create a self-contained stream]' \
- '-r[Generate a recursive stream package]' \
- ':snapshot:_zfs_dataset -t snap'
- ;;
-
- ("receive")
- _arguments -A "-*" \
- '-v[Verbose]' \
- '-n[Do not receive the stream]' \
- '-F[Force a rollback if necessary]' \
- '-u[Filesystem is not mounted]' \
- '-o[Include property change in the stream]::' \
- '-x[Exclude property change from the stream]:property:' \
- - set1 \
- ':filesystem/volume/snapshot:_zfs_dataset' \
- - set2 \
- '(-e)-d[Set path prefix from stream, excluding only pool name]' \
- '(-d)-e[Set path prefix from stream, using last path element]' \
- '-:filesystem:_zfs_dataset -t fs'
- ;;
-
- ("allow")
- _arguments -A "-*" \
- - set1 \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set2 \
- '(-g)-u[User]:user:_users' \
- '(-u)-g[Group]:group:_groups' \
- '-l[Allow for named dataset]' \
- '-d[Allow for descendent datasets]' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set3 \
- '-e[Everyone]' \
- '-l[Allow for named dataset]' \
- '-d[Allow for descendent datasets]' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set4 \
- '-c[Create-time permissions]' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set5 \
- '-s[Define or modify permission sets]' \
- ':setname:' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol'
- ;;
-
- ("unallow")
- _arguments -A "-*" \
- '-r[Recursive removal]' \
- - set1 \
- '-s[Remove permissions from or delete a permission set]:permission set:' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set2 \
- '(-g)-u[User]:user:_users' \
- '(-u)-g[Group]:group:_groups' \
- '-l[Allow for named dataset]' \
- '-d[Allow for descendent datasets]' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set3 \
- '-e[Everyone]' \
- '-l[Allow for named dataset]' \
- '-d[Allow for descendent datasets]' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol' \
- - set4 \
- '-c[Create-time permissions]' \
- ':permissions or sets:_values -s , "permission or set" $delegatable_perms' \
- ':filesystem/volume:_zfs_dataset -t fs -t vol'
- ;;
-
- ("upgrade")
- _arguments -A "-*" \
- - set1 \
- '-v[Verbose]' \
- - set2 \
- '-a[Upgrade all filesystems on all pools]' \
- '-r[Upgrade descendent filesystems, too]' \
- '-V[Upgrade to specified version]:version:(1 2)' \
- - set3 \
- '-r[Upgrade descendent filesystems, too]' \
- '-V[Upgrade to specified version]:version:(1 2)' \
- ':filesystem:_zfs_dataset -t fs'
- ;;
-
- ("hold")
- _arguments -A "-*" \
- '-r[Apply hold recursively]' \
- ':tag:' \
- ':snapshot:_zfs_dataset -t snap'
- ;;
-
- ("holds")
- _arguments -A "-*" \
- '-r[List holds recursively]' \
- ':snapshot:_zfs_dataset -t snap'
- ;;
-
- ("release")
- _arguments -A "-*" \
- '-r[Release holds recursively]' \
- ':tag:' \
- ':snapshot:_zfs_dataset -t snap'
- ;;
-
- ("diff")
- _arguments -A "-*" \
- '-F[Add column for filetype character]' \
- '-H[Parseable output]' \
- '-e[Only show new and changed files]' \
- '*-o[Show fields]:field:_values "field" $difffields' \
- '-t[Add column for ctime]' \
- - set1 \
- ':snapshot:_zfs_dataset -t snap' \
- ':snapshot or filesystem:_zfs_dataset -t snap -t fs' \
- - set2 \
- '-E[Show difference from empty]' \
- ':snapshot or filesystem:_zfs_dataset -t snap -t fs'
- ;;
-
- ("key")
- _arguments -A "-*" \
- - set1 \
- '-a[Apply to all datasets in all pools]' \
- '(-u -K -f)-l[Load the encryption key]' \
- '(-l -K)-u[Unload the encryption key]' \
- '(-l -u -f)-K[Create a new data encryption key]' \
- '(-l -K)-f[Unmount the dataset before unloading the encryption key]' \
- '-r[Apply recursively]' \
- ':filesystem or volume:_zfs_dataset -t fs -t vol' \
- - set2 \
- '-c[Change the encryption key]' \
- '-o[Change a property]:property:_zfs_keysource_props' \
- ':filesystem or volume:_zfs_dataset -t fs -t vol'
- ;;
-
- ("help")
- _arguments -A "-*" \
- - set1 \
- ':command:($subcmds $delegatable_perms $ro_properties ${rw_properties%%:*} properties)' \
- - set2 \
- '-l[Display property information]' \
- ': :(properties)'
- ;;
-
- (*)
- _message "unknown zfs subcommand: $service"
- ;;
- esac
-}
-
-_zfs "$@"