#207: remove compdefs without a license header

This commit is contained in:
Julien Nicoulaud 2016-09-08 22:26:58 +02:00
parent 3d6fb8c708
commit 0713143ec8
No known key found for this signature in database
GPG Key ID: D713C40AA20BF77D
22 changed files with 0 additions and 3448 deletions

View File

@ -1,139 +0,0 @@
#compdef celery
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for celery (https://github.com/celery/celery).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Dong weiming (https://github.com/dongweiming)
#
# ------------------------------------------------------------------------------
_celery () {
local -a _1st_arguments ifargs dopts controlargs
typeset -A opt_args
_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \
'control' 'purge' 'list' 'migrate' 'call' 'result' 'report')
ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version')
dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=')
controlargs=('--timeout' '--destination')
_arguments \
'(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \
'(-b --broker=)'{-b,--broker}'[url to broker. default is "amqp://guest@localhost//":BROKER]' \
'(--loader)--loader[name of custom loader class to use.:LOADER]' \
'(--config)--config[Name of the configuration module:CONFIG]' \
'(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \
'(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \
'(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \
'(--version)--version[show program"s version number and exit]' \
'(- : *)'{-h,--help}'[show this help message and exit]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "celery subcommand" _1st_arguments
return
fi
case "$words[1]" in
worker)
_arguments \
'(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \
'(--pool)--pool=:::(processes eventlet gevent threads solo)' \
'(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \
'(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \
'(--loglevel=)--loglevel=:::(critical error warning info debug)' \
'(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \
'(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \
'(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \
'(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \
'(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \
'(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \
'(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \
'(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \
'(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \
'(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \
'(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \
'(--autoreload)--autoreload[Enable autoreloading.]' \
'(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]'
compadd -a ifargs
;;
inspect)
_values -s \
'active[dump active tasks (being processed)]' \
'active_queues[dump queues being consumed from]' \
'ping[ping worker(s)]' \
'registered[dump of registered tasks]' \
'report[get bugreport info]' \
'reserved[dump reserved tasks (waiting to be processed)]' \
'revoked[dump of revoked task ids]' \
'scheduled[dump scheduled tasks (eta/countdown/retry)]' \
'stats[dump worker statistics]'
compadd -a controlargs ifargs
;;
control)
_values -s \
'add_consumer[tell worker(s) to start consuming a queue]' \
'autoscale[change autoscale settings]' \
'cancel_consumer[tell worker(s) to stop consuming a queue]' \
'disable_events[tell worker(s) to disable events]' \
'enable_events[tell worker(s) to enable events]' \
'pool_grow[start more pool processes]' \
'pool_shrink[use less pool processes]' \
'rate_limit[tell worker(s) to modify the rate limit for a task type]' \
'time_limit[tell worker(s) to modify the time limit for a task type.]'
compadd -a controlargs ifargs
;;
multi)
_values -s \
'--nosplash[Don"t display program info.]' \
'--verbose[Show more output.]' \
'--no-color[Don"t display colors.]' \
'--quiet[Don"t show as much output.]' \
'start' 'restart' 'stopwait' 'stop' 'show' \
'names' 'expand' 'get' 'kill'
compadd -a ifargs
;;
amqp)
_values -s \
'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \
'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get'
;;
list)
_values -s, 'bindings'
;;
shell)
_values -s \
'--ipython[force iPython.]' \
'--bpython[force bpython.]' \
'--python[force default Python shell.]' \
'--without-tasks[don"t add tasks to locals.]' \
'--eventlet[use eventlet.]' \
'--gevent[use gevent.]'
compadd -a ifargs
;;
beat)
_arguments \
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \
'(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \
'(--max-interval)--max-interval[]'
compadd -a dopts fargs
;;
events)
_arguments \
'(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \
'(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \
'(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency. Default is every 1.0 seconds.]' \
'(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]'
compadd -a dopts fargs
;;
*)
;;
esac
}

View File

@ -1,105 +0,0 @@
#compdef cpanm
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for cpanm (http://search.cpan.org/dist/App-cpanminus/lib/App/cpanminus.pm).
#
# Source: https://github.com/rshhh/cpanminus/blob/master/etc/_cpanm
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Ryushi (https://github.com/rshhh)
#
# ------------------------------------------------------------------------------
local arguments curcontext="$curcontext"
typeset -A opt_args
arguments=(
# Commands
# '(--install -i)'{--install,-i}'[Installs the modules]'
'(- :)--self-upgrade[Upgrades itself]'
'(- :)--info[Displays distribution info on CPAN]'
'(--installdeps)--installdeps[Only install dependencies]'
'(--look)--look[Download/unpack the distribution and then open the directory with your shell]'
'(--uninstall -U)'{--uninstall,-U}'[Uninstalls the modules]'
'(- :)'{--help,-h}'[Displays help information]'
'(- :)'{--version,-V}'[Displays software version]'
# Options
{--force,-f}'[Force install]'
{--notest,-n}'[Do not run unit tests]'
'(--test-only)--test-only[Run the test only and do not install the module]'
{--sudo,-S}'[sudo to run install commands]'
'(-v --verbose --quiet -q)'{--verbose,-v}'[Turns on chatty output]'
'(-q --quiet --verbose -v)'{--quiet,-q}'[Turns off all output]'
{--local-lib,-l}'[Specify the install base to install modules]'
{--local-lib-contained,-L}'[Specify the install base to install all non-core modules]'
'(--self-contained)--self-contained[Assume no non-core modules are installed on the system]'
'--mirror[Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)]:URLs:_urls'
'--mirror-only[Use the mirror\''s index file instead of the CPAN Meta DB]'
'--mirror-index[Specifies the file path for module search index]:FILES:_files'
'--prompt[Prompt when configure/build/test fails]'
'(--dev)--dev[Search for a newer developer release as well]'
'--reinstall[Reinstall the distribution even if you already have the latest version installed]'
'--interactive[Turn on interactive configure]'
'(--pp --pureperl)'{--pp,--pureperl}'[Prefer Pure perl build of modules]'
'(--with-recommends)--with-recommends[Installs dependencies declared as "recommends"]'
'(--with-suggests)--with-suggests[Installs dependencies declared as "suggests"]'
'(--with-feature)--with-feature[Specifies the feature to enable]'
'(--without-feature)--without-feature[Specifies the feature to disable]'
'(--with-all-features)--with-all-features[Enables all the optional features]'
'(--configure-timeout)--configure-timeout[Specify the timeout length to wait for configure]'
'(--build-timeout)--build-timeout[Specify the timeout length to wait for build]'
'(--test-timeout)--test-timeout[Specify the timeout length to wait for test]'
'(--configure-args)--configure-args[Pass arguments for configure commands]'
'(--build-args)--build-args[Pass arguments for build commands]'
'(--test-args)--test-args[Pass arguments for test commands]'
'(--install-args)--install-args[Pass arguments for install commands]'
'--scandeps[Scan the dependencies of given modules and output the tree in a text format]'
'--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)'
'--save-dists[Specify the optional directory path to copy downloaded tarballs]'
'(--uninst-shadows)--uninst-shadows[Uninstalls the shadow files of the distribution that you\''re installing]'
'(--cascade-search)--cascade-search[Specifies whether to cascade search]'
'(--skip-installed)--skip-installed[Specifies modules which latest version are already installed]'
'(--skip-satisfied)--skip-satisfied[Specifies module and version for skipping installation]'
'(--verify)--verify[Verify the integrity of distribution files]'
'(--no-report-perl-version)--report-perl-version[Report locally installed perl version as part of User-Agent]'
'(--report-perl-version)--no-report-perl-version[Disable --report-perl-version]'
'--auto-cleanup[Number of days that cpanm\''s work directories expire in. Defaults to 7]'
'(--no-man-pages)--man-pages[Generates man pages for executables (man1) and libraries (man3)]'
'(--man-pages)--no-man-pages[Do not generate man pages]'
# Note: Normally with "--lwp", "--wget" and "--curl" options set to true (which is the default) cpanm tries LWP,
# Wget, cURL and HTTP::Tiny (in that order) and uses the first one available.
# (So that the exclusions are not enabled here for the completion)
'(--lwp)--lwp[Use LWP module to download stuff]'
'(--wget)--wget[Use GNU Wget (if available) to download stuff]'
'(--curl)--curl[Use cURL (if available) to download stuff]'
# Other completions
'*:Local directory or archive:_files -/ -g "*.(tar.gz|tgz|tar.bz2|zip)(-.)"'
# '*::args: _normal' # this looks for default files (any files)
)
_arguments -s $arguments \
&& return 0
return 1
# 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

@ -1,53 +0,0 @@
#compdef ditz
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Ditz (http://ditz.rubyforge.org).
#
# Source: https://github.com/technolize/zsh-completion-funcs
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * technolize (https://github.com/technolize)
#
# ------------------------------------------------------------------------------
local ME=ditz
local COMMANDS=--commands
local OPTIONS='<options>'
if (($CURRENT == 2)); then
# We're completing the first word after the tool: the command.
_wanted command expl "$ME command" \
compadd -- $( "$ME" "$COMMANDS" )
else
# Find the options/files/URL/etc. for the current command by using the tool itself.
case "${words[$CURRENT]}"; in
-*)
_wanted args expl "Arguments for $ME ${words[2]}" \
compadd -- $( "$ME" "${words[2]}" "$OPTIONS" ; _files )
;;
ht*|ft*)
_arguments '*:URL:_urls'
;;
/*|./*|\~*|../*)
_arguments '*:file:_files'
;;
*)
_wanted args expl "Arguments for $ME ${words[2]}" \
compadd -- $( "$ME" "${words[2]}" "$OPTIONS" )
;;
esac
fi
# 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

@ -1,44 +0,0 @@
#compdef dzen2
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for dzen2 0.8.5 ( https://github.com/robm/dzen )
# Last updated: 31.03.2013
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim ( https://github.com/Valodim )
#
# ------------------------------------------------------------------------------
# Notes
# -----
#
# the _x_color completer has rather outdated paths, a zstyle like this helps
# get the x colors right (the list is rather long, then)
#
# zstyle ":completion:*:colors" path '/etc/X11/rgb.txt'
#
# ------------------------------------------------------------------------------
_arguments \
'-fg[Set foreground color]:foreground color:_x_color' \
'-bg[Set background color]:background color:_x_color' \
'-fn[Set font]:font:_x_font' \
'-ta[Set alignment of title window content]:alignment:( l c r )' \
'-tw[Set title window width]:width (pixels)' \
'-sa[Set alignment of slave window]:alignment:( l c r )' \
'-l[Number of lines to display in slave window]:lines' \
'-e[Set up events and actions]:event string' \
'-m[Start up in menu mode]' \
'-u[Update contents of title and slave window simultaneously]' \
'-p[Persist EOF]:timeout (seconds)' \
'-x[Set x position on the screen]:x position (pixels)' \
'-y[Set y position on the screen]:y position (pixels)' \
'-h[Set line height]:line height (pixels)' \
'-w[Set window width]:width (pixels)' \
'-xs[Set the Xinerama screen number where dzen should appear]:screen number' \
'-v[Display version information]' && return 0

499
src/_gem
View File

@ -1,499 +0,0 @@
#compdef gem gem1.9 macgem
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for gem (http://rubygems.org).
#
# Source: https://gist.github.com/164465
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Alex Vollmer (https://github.com/alexvollmer)
# * Tim Pope (https://github.com/tpope)
#
# ------------------------------------------------------------------------------
gem_general_flags=("(-h --help)"{-h,--help}"[Get help on this command]"
"(-V --verbose)"{-V,--verbose}"[Set the verbose level of output]"
"(-q --quiet)"{-q,--quiet}"[Silence commands]"
"--config-file[Use this config file instead of default]:file:_files"
"--backtrace[Show stack backtrace on errors]"
"--debug[Turn on Ruby debugging]"
$nul_arg
)
__all_gems() {
_gem_names=($(${service} list | awk '{print $1}'))
compadd "$@" -k _gem_names
}
__all_gems_all() {
_gem_names=($(gem list | awk '{print $1}') "--all")
compadd "$@" -k _gem_names
}
__gem_help_arguments() {
_args=("commands"
"examples"
"build"
"cert"
"check"
"cleanup"
"contents"
"dependency"
"environment"
"fetch"
"generate_index"
"help"
"install"
"list"
"lock"
"mirror"
"outdated"
"owner"
"pristine"
"push"
"query"
"rdoc"
"search"
"server"
"sources"
"specification"
"stale"
"tumble"
"uninstall"
"unpack"
"update"
"which")
compadd "$@" -k _args
}
__gem_trust_policies() {
_args=("NoSecurity"
"LowSecurity"
"MediumSecurity"
"HighSecurity")
compadd "$@" -k _args
}
_gem_build() {
_arguments \
*:file:_files -f \
$gem_general_flags && ret=0
}
_gem_cert() {
_arguments \
"(-a --add)"{-a,--add}"[Add a trusted certificate.]":file:_files \
"(-l --list)"{-l,--list}"[List trusted certificates.]" \
"(-r --remove)"{-r,--remove}"[Remove trusted certificates containing STRING.]" \
"(-b --build)"{-b,--build}"[Build private key and self-signed certificate for EMAIL_ADDR.]" \
"(-C --certificate)"{-C,--certificate}"[Certificate for --sign command.]":file:_files \
"(-K --private-key)"{-K,--private-key}"[Private key for --sign command.]":file:_files \
"(-s --sign)"{-s,--sign}"[Sign a certificate with my key and certificate.]":file:_files \
$gem_general_flags && ret=0
}
_gem_check() {
_arguments \
"--verify[Verify gem file against its internal checksum]":file:_files \
"(-a --alien)"{-a,--alien}"[Report 'unmanaged' or rogue files in the gem repository]" \
"(-v --verbose)"{-v,--verbose}"[Spew more words]" \
"(-t --test)"{-t,--test}"[Run unit tests for gem]" \
"(-v --version)"{-v,--version}"[Specify version of gem to run tests for]" \
$gem_general_flags && ret=0
}
_gem_cleanup() {
_arguments \
"*:gemname:__all_gems" \
"(-d --dryrun)"{-d,--dryrun}"[]" \
$gem_general_flags && ret=0
}
_gem_contents() {
_arguments \
"*:gemname:__all_gems" \
"(-v --version)"{-v,--version}"[Specify version of gem to contents]" \
"--all[Contents for all gems]" \
"(-s --spec-dir)"{-s,--spec-dir}"[Search for gems under specific paths]" \
"(-l --no-lib-only)"{-l,--no-lib-only}"[Only return files in the Gem's lib_dirs]" \
"--no-prefix[Don't include installed path prefix]" \
$gem_general_flags && ret=0
}
_gem_dependency() {
_arguments \
":gemname:__all_gems" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
"(-v --version)"{-v,--version}"[Specify version of gem to dependency]" \
"--platform[Specify the platform of gem to dependency]" \
"(-R --no-reverse-dependencies)"{-R,--no-reverse-dependencies}"[Include reverse dependencies in the output]" \
"(-p --pipe)"{-p,--pipe}"[Pipe Format (name --version ver)]" \
$gem_general_flags && ret=0
}
_gem_environment() {
typeset -g _environment_arg=
_environment_arg='::environment:((packageversion\:"display the package version"
gemdir\:"display the path where gems are installed"
gempath\:"display path used to search for gems"
version\:"display the gem format version"
remotesources\:"display the remote gem servers"))'
_arguments \
$_environment_arg \
$gem_general_flags && ret=0
}
_gem_fetch() {
_arguments \
"*:gemname:__all_gems" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"--source[Use URL as the remote source for gems]" \
"(-v --version)"{-v,--version}"[Specify version of gem to fetch]" \
"--platform[Specify the platform of gem to fetch]" \
$gem_general_flags && ret=0
}
_gem_generate_index() {
_arguments \
"(-d --directory=DIRNAME)"{-d,--directory=-}"[repository base dir containing gems subdir]":directory:_directories \
"--no-legacy[Generate indexes for RubyGems older than 1.2.0]" \
"--no-modern[Generate indexes for RubyGems newer than 1.2.0]" \
"--update[Update modern indexes with gems added since the last update]" \
"--rss-gems-host=-[Host name where gems are served from, used for GUID and enclosure values]" \
"--rss-host=-[Host name for more gems information, used for RSS feed link]" \
"--rss-title=-[Set title for RSS feed]" \
$gem_general_flags && ret=0
}
_gem_help() {
_arguments \
":argument:__gem_help_arguments" \
$gem_general_flags && ret=0
}
_gem_install() {
_arguments \
"*:gemname:__all_gems" \
"(-i --install-dir)"{-i,--install-dir}"[Gem repository directory to get installed gems]":directory:_directories \
"(-n --bindir)"{-n,--bindir}"[Directory where binary files are located]":directory:_directories \
"(-d --no-rdoc)"{-d,--no-rdoc}"[Generate RDoc documentation for the gem on install]" \
"--no-ri[Generate RI documentation for the gem on install]" \
"(-E --no-env-shebang)"{-E,--no-env-shebang}"[Rewrite the shebang line on installed scripts to use /usr/bin/env]" \
"(-f --no-force)"{-f,--no-force}"[Force gem to install, bypassing dependency checks]" \
"(-t --no-test)"{-t,--no-test}"[Run unit tests prior to installation]" \
"(-w --no-wrappers)"{-w,--no-wrappers}"[Use bin wrappers for executables Not available on dosish platforms]" \
"(-P --trust-policy)"{-P,--trust-policy}"[Specify gem trust policy]:trust policy:__gem_trust_policies" \
"--ignore-dependencies[Do not install any required dependent gems]" \
"(-y --include-dependencies)"{-y,--include-dependencies}"[Unconditionally install the required dependent gems]" \
"--no-format-executable[Make installed executable names match ruby. If ruby is ruby18, foo_exec will be foo_exec18]" \
"--no-user-install[Install in user's home directory instead of GEM_HOME. Defaults to using home only if GEM_HOME is not writable.]" \
"--development[Install any additional development dependencies]" \
"--prerelease[Install prerelease versions of a gem if available. Defaults to skipping prereleases.]" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
"--platform[Specify the platform of gem to install]" \
"(-v --version)"{-v,--version}"[Specify version of gem to install]" \
$gem_general_flags && ret=0
}
_gem_list() {
_arguments \
":gem name: " \
"(-i --no-installed)"{-i,--no-installed}"[Check for installed gem]" \
"(-v --version)"{-v,--version}"[Specify version of gem to list]" \
"(-d --no-details)"{-d,--no-details}"[Display detailed information of gem(s)]" \
"--no-versions[Display only gem names]" \
"(-a --all)"{-a,--all}"[Display all gem versions]" \
"--prerelease[Display prerelease versions]" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
$gem_general_flags && ret=0
}
_gem_lock() {
_arguments \
":gemname:__all_gems" \
"(-s --no-strict)"{-s,--no-strict}"[fail if unable to satisfy a dependency]" \
$gem_general_flags && ret=0
}
_gem_mirror() {
_arguments \
$gem_general_flags && ret=0
}
_gem_open() {
_arguments \
"*:gemname:__all_gems" \
"(-v --version)"{-v,--version}"[Specify version of gem to open]"
}
_gem_outdated() {
_arguments \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
"--platform[Specify the platform of gem to outdated]" \
$gem_general_flags && ret=0
}
_gem_owner() {
_arguments \
"(-a --add)"{-a,--add}"[Add an owner]" \
"(-r --remove)"{-r,--remove}"[Remove an owner]" \
$gem_general_flags && ret=0
}
_gem_pristine() {
_arguments \
":gem name:__all_gems_all" \
"--all[Restore all installed gems to pristine condition]" \
"(-v --version)"{-v,--version}"[Specify version of gem to restore to pristine condition]" \
$gem_general_flags && ret=0
}
_gem_push() {
_arguments \
*:file:_files -f \
"(-p --http-proxy)"{-p,--http-proxy}"[Use HTTP proxy for remote operations]" \
$gem_general_flags && ret=0
}
_gem_query() {
_arguments \
"(-i --no-installed)"{-i,--no-installed}"[Check for installed gem]" \
"(-v --version)"{-v,--version}"[Specify version of gem to query]" \
"(-n --name-matches)"{-n,--name-matches}"[Name of gem(s) to query on matches the provided REGEXP]" \
"(-d --no-details)"{-d,--no-details}"[Display detailed information of gem(s)]" \
"--no-versions[Display only gem names]" \
"(-a --all)"{-a,--all}"[Display all gem versions]" \
"--prerelease[Display prerelease versions]" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
$gem_general_flags && ret=0
}
_gem_rdoc() {
_arguments \
":gem name:__all_gems_all" \
"--all[Generate RDoc/RI documentation for all installed gems]" \
"--no-rdoc[Include RDoc generated documents]" \
"--no-ri[Include RI generated documents]" \
"(-v --version)"{-v,--version}"[Specify version of gem to rdoc]" \
$gem_general_flags && ret=0
}
_gem_search() {
_arguments \
":gem name::" \
"(-i --no-installed)"{-i,--no-installed}"[Check for installed gem]" \
"(-v --version)"{-v,--version}"[Specify version of gem to search]" \
"(-d --no-details)"{-d,--no-details}"[Display detailed information of gem(s)]" \
"--no-versions[Display only gem names]" \
"(-a --all)"{-a,--all}"[Display all gem versions]" \
"--prerelease[Display prerelease versions]" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
$gem_general_flags && ret=0
}
_gem_server() {
_arguments \
"(-p --port=PORT)"{-p,--port=-}"[port to listen on]" \
"(-d --dir=GEMDIR)"{-d,--dir=-}"[directory from which to serve gems]":directory:_directories \
"--no-daemon[run as a daemon]" \
$gem_general_flags && ret=0
}
_gem_sources() {
_arguments \
"(-a --add)"{-a,--add}"[Add source]" \
"(-l --list)"{-l,--list}"[List sources]" \
"(-r --remove)"{-r,--remove}"[Remove source]" \
"(-c --clear-all)"{-c,--clear-all}"[Remove all sources (clear the cache)]" \
"(-u --update)"{-u,--update}"[Update source cache]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
$gem_general_flags && ret=0
}
_gem_specification() {
_arguments \
":gemname:__all_gems" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
"(-v --version)"{-v,--version}"[Specify version of gem to examine]" \
"--platform[Specify the platform of gem to specification]" \
"--all[Output specifications for all versions of the gem]" \
"--ruby[Output ruby format]" \
"--yaml[Output RUBY format]" \
"--marshal[Output Marshal format]" \
$gem_general_flags && ret=0
}
_gem_stale() {
_arguments \
$gem_general_flags && ret=0
}
_gem_tumble() {
_arguments \
$gem_general_flags && ret=0
}
_gem_uninstall() {
_arguments \
"*:gemname:__all_gems" \
"(-a --no-all)"{-a,--no-all}"[Uninstall all matching versions]" \
"(-I --no-ignore-dependencies)"{-I,--no-ignore-dependencies}"[Ignore dependency requirements while uninstalling]" \
"(-x --no-executables)"{-x,--no-executables}"[Uninstall applicable executables without confirmation]" \
"(-i --install-dir)"{-i,--install-dir}"[Directory to uninstall gem from]":directory:_directories \
"(-n --bindir)"{-n,--bindir}"[Directory to remove binaries from]":directory:_directories \
"--no-user-install[Uninstall from user's home directory in addition to GEM_HOME.]" \
"(-v --version)"{-v,--version}"[Specify version of gem to uninstall]" \
"--platform[Specify the platform of gem to uninstall]" \
$gem_general_flags && ret=0
}
_gem_unpack() {
_arguments \
":gemname:__all_gems" \
"--target=-[target directory for unpacking]":directory:_directories \
"(-v --version)"{-v,--version}"[Specify version of gem to unpack]" \
$gem_general_flags && ret=0
}
_gem_update() {
_arguments \
"*:gemname:__all_gems" \
"(-i --install-dir)"{-i,--install-dir}"[Gem repository directory to get installed gems]":directory:_directories \
"(-n --bindir)"{-n,--bindir}"[Directory where binary files are located]":directory:_directories \
"(-d --no-rdoc)"{-d,--no-rdoc}"[Generate RDoc documentation for the gem on install]" \
"--no-ri[Generate RI documentation for the gem on install]" \
"(-E --no-env-shebang)"{-E,--no-env-shebang}"[Rewrite the shebang line on installed scripts to use /usr/bin/env]" \
"(-f --no-force)"{-f,--no-force}"[Force gem to install, bypassing dependency checks]" \
"(-t --no-test)"{-t,--no-test}"[Run unit tests prior to installation]" \
"(-w --no-wrappers)"{-w,--no-wrappers}"[Use bin wrappers for executables Not available on dosish platforms]" \
"(-P --trust-policy)"{-P,--trust-policy}"[Specify gem trust policy]:trust policy:__gem_trust_policies" \
"--ignore-dependencies[Do not install any required dependent gems]" \
"(-y --include-dependencies)"{-y,--include-dependencies}"[Unconditionally install the required dependent gems]" \
"--no-format-executable[Make installed executable names match ruby. If ruby is ruby18, foo_exec will be foo_exec18]" \
"--no-user-install[Install in user's home directory instead of GEM_HOME. Defaults to using home only if GEM_HOME is not writable.]" \
"--development[Install any additional development dependencies]" \
"--prerelease[Install prerelease versions of a gem if available. Defaults to skipping prereleases.]" \
"(-l --local)"{-l,--local}"[Restrict operations to the LOCAL domain]" \
"(-r --remote)"{-r,--remote}"[Restrict operations to the REMOTE domain]" \
"(-b --both)"{-b,--both}"[Allow LOCAL and REMOTE operations]" \
"(-B --bulk-threshold)"{-B,--bulk-threshold}"[Threshold for switching to bulk synchronization (default 1000)]" \
"--source[Use URL as the remote source for gems]" \
"(-p --[no-]http-proxy)"{-p,--[no-]http-proxy}"[Use HTTP proxy for remote operations]" \
"(-u --no-update-sources)"{-u,--no-update-sources}"[Update local source cache]" \
"--system[Update the RubyGems system software]" \
"--platform[Specify the platform of gem to update]" \
$gem_general_flags && ret=0
}
_gem_which() {
_arguments \
*:file:_files -f \
"(-a --no-all)"{-a,--no-all}"[show all matching files]" \
"(-g --no-gems-first)"{-g,--no-gems-first}"[search gems before non-gems]" \
$gem_general_flags && ret=0
}
_gem_migrate() {
_arguments \
"*:gemname:__all_gems" \
$gem_general_flags && ret=0
}
if (( CURRENT > 2 )); then
(( CURRENT-- ))
shift words
_call_function 1 _gem_${words[1]}
else
_values "gem command" \
"build[Build a gem from a gemspec]" \
"cert[Manage RubyGems certificates and signing settings]" \
"check[Check installed gems]" \
"cleanup[Clean up old versions of installed gems in the local repository]" \
"contents[Display the contents of the installed gems]" \
"dependency[Show the dependencies of an installed gem]" \
"environment[Display information about the RubyGems environment]" \
"fetch[Download a gem and place it in the current directory]" \
"generate_index[Generates the index files for a gem server directory]" \
"help[Provide help on the 'gem' command]" \
"install[Install a gem into the local repository]" \
"list[Display gems whose name starts with STRING]" \
"lock[Generate a lockdown list of gems]" \
"migrate[Migrate a gem you own from Rubyforge to Gemcutter]" \
"mirror[Mirror a gem repository]" \
"open[Open a gem in your editor]" \
"outdated[Display all gems that need updates]" \
"owner[Manage gem owners on Gemcutter]" \
"pristine[Restores installed gems to pristine condition from files located in the gem cache]" \
"push[Push a gem up to Gemcutter]" \
"query[Query gem information in local or remote repositories]" \
"rdoc[Generates RDoc for pre-installed gems]" \
"search[Display all gems whose name contains STRING]" \
"server[Documentation and gem repository HTTP server]" \
"sources[Manage the sources and cache file RubyGems uses to search for gems]" \
"specification[Display gem specification (in yaml)]" \
"stale[List gems along with access times]" \
"tumble[Enable or disable Gemcutter as your primary gem source]" \
"uninstall[Uninstall gems from the local repository]" \
"unpack[Unpack an installed gem to the current directory]" \
"update[Update the named gems (or all installed gems) in the local repository]" \
"which[Find the location of a library file you can require]"
fi
# 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

@ -1,177 +0,0 @@
#compdef hledger
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for hleder 0.23.2 ( http://hledger.org/ )
# Last updated: 16.11.2014
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim ( https://github.com/Valodim )
#
# ------------------------------------------------------------------------------
# Notes
# -----
#
# account completion depends on availability of a ~/.hledger.journal file
#
# ------------------------------------------------------------------------------
local curcontext="$curcontext" curstate state line expl grp cmd ret=1
typeset -a args
typeset -A opt_args
args=(
'(- *)'{-h,--help}'[print help information]'
'(-f --file)'{-f,--file}'=[use a different input file]:input file:_files'
'--rules-file=[CSV conversion rules file]:rules file:_files'
'--alias=[display accounts named OLD as NEW]:alias specification'
'(-b --begin)'{-b,--begin}'=[include postings/txns on or after this date]:date'
'(-e --end)'{-e,--end}'=[include postings/txns before this date]:date'
'(-D --daily)'{-D,--daily}'[multiperiod/multicolumn report by day]'
'(-W --weekly)'{-W,--weekly}'[multiperiod/multicolumn report by week]'
'(-M --monthly)'{-M,--monthly}'[multiperiod/multicolumn report by month]'
'(-Q --quarterly)'{-Q,--quarterly}'[multiperiod/multicolumn report by quarter]'
'(-Y --yearly)'{-Y,--yearly}'[multiperiod/multicolumn report by year]'
'(-p --period)'{-p,--period}'=[set start date, end date, and/or reporting interval all at once]'
'(-C --cleared)'{-C,--cleared}'[include only cleared postings/txns]'
'(-U --uncleared)'{-U,--uncleared}'[include only uncleared postings/txns]'
'(-R --real)'{-R,--real}'[include only non-virtual postings]'
'(--depth)--depth=[hide accounts/postings deeper than N]:depth'
'(-E --empty)'{-E,--empty}'[show empty/zero things which are normally omitted]'
'(-B --cost)'{-B,--cost}'[show amounts in their cost price'\''s commodity]'
)
_arguments -C "$args[@]" -A "-*" \
'(- *)--version[print version information]' \
'--debug[show debug output]' \
'1: :->cmds' \
'*:: :->args' && ret=0
while (( $#state )); do
curstate=$state
shift state
case $curstate in
cmds)
typeset -a cmds
cmds=(
'print:show transaction entries'
'accounts:show account names'
'balance:show accounts and balances (bal)'
'register:show postings and running total (reg)'
'incomestatement:show an income statement (is)'
'balancesheet:show a balance sheet (bs)'
'cashflow:show a cashflow statement (cf)'
'activity:show an ascii barchart of posting counts per interval'
'stats:show some journal statistics'
)
_describe 'subcommands' cmds && ret=0
;;
args)
: $words
local cmd=$words[1]
(( $+cmd )) || return 1
# curcontext="${curcontext%:*:*}:$service-$cmd:"
case $cmd in
accounts)
args+=(
'(--tree)--tree[show accounts as a tree (default in simple reports)]'
'(--flat)--flat[show accounts as a list (default in multicolumn)]'
'(--drop)--drop=[flat mode, omit N leading account name parts]:drop n'
)
;;
activity)
;;
bal|balance)
args+=(
'(--tree)--tree[show accounts as a tree (default in simple reports)]'
'(--flat)--flat[show accounts as a list (default in multicolumn)]'
'(--drop)--drop=[in flat mode, omit N leading account name parts]:drop n'
'(--format)--format=[in tree mode, use this custom line format]:custom line format'
'(--no-elide)--no-elide[tree mode, do not squash boring parent accounts]'
'(--no-total)--no-total[do not show the final total]'
'(--cumulative)--cumulative[multicolumn mode, show accumulated ending balances]'
'(-H --historical)'{-H,--historical}'[multicolumn mode, show historical ending balances]'
)
;;
cashflow|cf|balancesheet|bs|incomestatement|is)
args+=(
'(--flat)--flat[show accounts as a list (default in multicolumn)]'
'(--drop)--drop=[in flat mode, omit N leading account name parts]:drop n'
)
;;
print)
;;
register|reg)
args+=(
'(-H --historical)'{-H,--historical}'[include prior postings in the running total]'
'(-A --average)'{-A,--average}'[show a running average instead of the running total]'
'(-r --related)'{-r,--related}'[show postings'\'' siblings instead]'
'(-w --width)'{-w,--width}'=[set output width to 120, or N]:width (default 80)'
)
;;
stats)
;;
# fallback to _default
*) _arguments -C -A "-*" "$args[@]" \
'*: :_default' && ret=0
continue
esac
_arguments -C -A "-*" "$args[@]" \
'*:query patterns:->query' && ret=0
;;
query)
local -a accs keywords
keywords=(
'code\::match by transaction code'
'desc\::match transaction descriptions'
'tag\::match by tag name'
'depth\::match at or above depth'
'status\::match cleared/uncleared transactions'
'real\::match real/virtual transactions'
'empty\::match if amount is/is not zero'
'amt\::match transaction amount'
)
if compset -P 'amt:'; then
_message 'match amount (<, <=, >, >=, add sign for non-absolute match)' && ret=0
continue
fi
if compset -P '(#b)(code|desc|tag|depth|status|real|empty):'; then
_message "'$match[1]' parameter" && ret=0
continue
fi
accs=( ${(f)"$(_call_program hledger hledger accounts $PREFIX 2>/dev/null)"} )
if (( $? )); then
_message "error fetching accounts from hledger"
fi
# decided against partial matching here. these lines can
# be uncommented to complete subaccounts hierarchically
# (add -S '' -q to the compadd below, too)
# if compset -P '(#b)(*):'; then
# accs=( ${(M)accs:#$match[1]:*} )
# accs=( ${accs#$IPREFIX} )
# fi
# accs=( ${accs%%:*} )
_wanted accounts expl "accounts" compadd -a accs && ret=0
_describe "matcher keywords" keywords -S '' && ret=0
# not is special, it doesn't need the -S ''
keywords=(
'not:negate expression'
)
_describe "matcher keywords" keywords && ret=0
;;
esac
done
return ret

View File

@ -1,70 +0,0 @@
#compdef id3
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for id3, based on v0.15
#
# Last updated: 03.04.2013
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim ( https://github.com/Valodim )
#
# ------------------------------------------------------------------------------
_id3_genre () {
setopt localoptions extendedglob
local -A _id3_genres
# got them cached?
if _cache_invalid id3-genres || ! _retrieve_cache id3-genres ; then
# generate from id3 -L otherwise
local tmp
for line in ${${${(f)"$(_call_program id3genre id3 -L)"}## #}}; do
tmp=( ${(s,: ,)line} )
_id3_genres[${tmp[1]}]=$tmp[2]
# alternate display string, which I decided against in the end
# to preserve reasonable alphabetic sorting
# "${(l:3:: :)${tmp[1]}}: ${tmp[2]}"
done
# store if we got any
(( $#_id3_genres > 0 )) && _store_cache id3-genres _id3_genres
fi
# bail if we don't
(( $#_id3_genres > 0 )) || { _message "could not fetch genres"; return }
_wanted id3genres expl 'Genres' \
compadd -d _id3_genres -k _id3_genres && return 0
}
# only show files if at least one argument or something has been provided
local showfiles=''
(( CURRENT <= 2 )) && showfiles='!'
_arguments \
- tagging \
'-t[modify title tag]:title' \
'-T[modify track tag]:track' \
'-a[modify artist tag]:artist' \
'-A[modify album tag]:album' \
'-y[modify year tag]:year' \
'-c[modify comment tag]:comment' \
'-g[modify genre tag]:genre:_id3_genre' \
'(-)-l[lists tags]' \
'-R[use rfc822-style format for output]' \
'(-)-d[delete id3 tag]' \
$showfiles'*:mp3 file:_files -g \*.mp3' \
- meta \
'(- *)-L[list all genres]' \
'(- *)-h[display help info]' \
'(- *)-v[print version info]' && return 0

View File

@ -1,116 +0,0 @@
#compdef id3v2
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for id3v2, based on v0.1.12
#
# Last updated: 05.04.2013
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim ( https://github.com/Valodim )
#
# ------------------------------------------------------------------------------
_id3v2_genre () {
setopt localoptions extendedglob
local -A _id3v2_genres
# got them cached?
if _cache_invalid id3v2-genres || ! _retrieve_cache id3v2-genres ; then
# generate from id3 -L otherwise
local tmp
for line in ${${${(f)"$(_call_program id3v2genres id3v2 -L)"}## #}}; do
tmp=( ${(s,: ,)line} )
_id3v2_genres[${tmp[1]}]=$tmp[2]
# alternate display string, which I decided against in the end
# to preserve reasonable alphabetic sorting
# "${(l:3:: :)${tmp[1]}}: ${tmp[2]}"
done
# store if we got any
(( $#_id3v2_genres > 0 )) && _store_cache id3v2-genres _id3v2_genres
fi
# bail if we don't
(( $#_id3v2_genres > 0 )) || { _message "could not fetch genres"; return }
_wanted id3v2genres expl 'Genres' \
compadd -d _id3v2_genres -k _id3v2_genres && return 0
}
# this function assumes _id3v2_frames is defined!
_id3v2_frame () {
(( $#_id3v2_frames > 0 )) || { _message "could not fetch genres"; return }
local -a framenames
framenames=( ${_id3v2_frames#--} )
_describe -t framenames 'id3v2 frames' framenames
}
_id3v2 () {
setopt localoptions extendedglob
# previous word was a frame name? this is an argument, then.
if [[ $words[$CURRENT-1] == --[A-Z](#c4) ]]; then
_message 'frame value'
return 0
fi
# load frame names
local -a _id3v2_frames
if _cache_invalid id3v2-frames || ! _retrieve_cache id3v2-frames ; then
_id3v2_frames=( ${${${(f)"$(_call_program id3v2frames id3v2 -f)"}## #}/ /:} )
(( $#_id3v2_frames > 0 )) && _store_cache id3v2-frames _id3v2_frames
fi
local ret=1
# if we already have a -- prefix, show all those frames
if [[ -prefix -- ]] && (( $#_id3v2_frames > 0 )); then
_describe -t frames 'id3v2 frames' _id3v2_frames && ret=0
fi
local showfiles=''
(( CURRENT <= 2 )) && showfiles='!'
# regular arguments either way
_arguments \
- tagging \
'(-s --delete-v1 -d --delete-v2)'{-s,--delete-v1}'[deletes id3v1 tags]' \
'(-s --delete-v1 -d --delete-v2)'{-d,--delete-v2}'[deletes id3v2 tags]' \
'(-C --convert)'{-C,--convert}'[converts id3v1 tag to id3v2]' \
'(-1 --id3v1-only -2 --id3v2-only)'{-1,--id3v1-only}'[write only id3v1 tag]' \
'(-1 --id3v1-only -2 --id3v2-only)'{-2,--id3v2-only}'[write only id3v2 tag]' \
'(-r --remove-frame)'{-r,--remove-frame}'[removes specified id3v2 frame]:frame id:_id3v2_frame' \
'(-a --artist)'{-a,--artist}'[set artist]:artist' \
'(-A --album)'{-A,--album}'[set album title]:album' \
'(-t --song)'{-t,--song}'[set song title]:song title' \
'(-c --comment)'{-c,--comment}'[set comment field]' \
'(-g --genre)'{-g,--genre}'[set the genre number]:genre:_id3v2_genre' \
'(-y --year)'{-y,--year}'[set the year]:year' \
'(-T --track)'{-T,--track}'[set the track number/(optional) total tracks]:track number (current/total)' \
'(-R --list-rfc822)'{-R,--list-rfc822}'[lists using an rfc822-style format for output]' \
'(-)'{-D,--delete-all}'[deletes both id3v1 and id3v2 tags]' \
'(-)'{-l,--list}'[lists the tag(s) on the file(s)]' \
$showfiles'*:mp3 file:_files -g "*.mp3"' \
- meta \
'(- *)'{-f,--list-frames}'[display all possible frames for id3v2]' \
'(- *)'{-L,--list-genres}'[lists all id3v1 genres]' \
'(- *)'{-h,--help}'[display help and exit]' \
'(- *)'{-v,--version}'[display version information and exit]' && ret=0
return ret
}
_id3v2 "$@"

247
src/_iw
View File

@ -1,247 +0,0 @@
#compdef iw
# Some parameters to hold patterns that will be used later.
local xp='[[:xdigit:]][[:xdigit:]]'
local -a bssid devices flags fouraddr fouronoff frequency high_throughput ifacename ifacetype ifacetypes
local -a matchany matchnum key lladdr lladdrs meshid meshidval ssid value
# matches any word
matchany=(/$'[^\0]##\0'/)
# matches any number
matchnum=(/$'[[:digit:]]##\0'/)
# matches any BSSID
bssid=($matchany ':bssid:BSSID:')
# matches any devices
devices=( /$'[[:alpha:]]##[[:digit:]]##(\.[[:digit:]]##)#\0'/ ':interfaces:network_interface:_net_interfaces' )
# matches the word 'flags' followed by a list of some of the following words: none fcsfail control otherbss cook
flags=(/$'flags\0'/ ':flags:flags:(flags)' $matchany ':flags:flags:(none fcsfail control otherbss cook)' \#)
# matches the word '4addr' followed by either 'on' or 'off'
fouronoff=(/$'(on|off)\0'/ ':4addr:4addr:(on off)')
fouraddr=( /$'4addr\0'/ ':4addr:4addr:(4addr)' $fouronoff )
# matches any number (description is 'frequency')
frequency=($matchnum ':freq:frequency:')
# matches one of HT20 HT40+ or HT40-
high_throughput=(/$'HT[0-9]##(+|-)#\0'/ ':HT:high throughput:(HT20 HT40+ HT40-)')
# matches any name (description is 'name')
ifacename=($matchany ':name:name:')
# matches the word 'type' followed by one of: managed ibss monitor mesh wds
ifacetypes=(/$'(managed|ibss|monitor|mesh|wds)\0'/ ':type:type:(managed ibss monitor mesh wds)')
ifacetype=(/$'type\0'/ ':type:type:(type)' $ifacetypes)
# matches any word (description is 'key')
key=($matchany ':key:key:')
# matches a MAC address (i.e. a sequence of six 2-digit numbers separated by spaces), $xp is defined earlier.
lladdr=(/"${xp}:${xp}:${xp}:${xp}:${xp}:${xp}"$'\0'/ ':lladdress:link layer (MAC) address:')
# as above but with a different description
lladdrs=(/"${xp}:${xp}:${xp}:${xp}:${xp}:${xp}"$'\0'/ ':lladdress:link layer (MAC) addresses (use - to match any octet):' \#)
# matches the word 'mesh_id' followed by a number
meshidval=($matchnum ':meshid:mesh ID:')
meshid=(/$'mesh_id\0'/ ':meshid:meshid:(mesh_id)' $meshidval)
# matches any word (description 'SSID')
ssid=($matchany ':ssid:SSID:')
# matches any word (description 'value')
value=($matchany ':val:value:')
# matches any number (description 'value')
numvalue=($matchnum ':val:value:')
# Use the _regex_words function to create a variable containing command words to go after "iw reg"
local -a reg_cmds
_regex_words regulatory-commands "reg command" \
'g*et:print out the kernels current regulatory domain information'\
's*et:notify the kernel about the current regulatory domain'
reg_cmds=("$reply[@]")
# Options for to go after "iw event"
local -a event_opts
_regex_words event-options "event option" \
'-t:print timestamp' \
'-r:print relative timestamp' \
'-f:print full frame for auth/assoc etc'
event_opts=("$reply[@]")
# Commands to go after "iw phy <DEV> wowlan enable"
local -a phy_wowlan_enable_cmds
_regex_words phy-wowlan-enable-commands "phy WoWLAN enable commands" \
'4*way-handshake:enable WoWLAN with 4way handshake trigger' \
'a*ny:enable WoWLAN with any trigger' \
'd*isconnect:enable WoWLAN with disconnect trigger' \
'e*ap-identity-request:enable WoWLAN with EAP identity request trigger' \
'g*tk-rekey-failure:enable WoWLAN with gtk rekey failure trigger' \
'm*agic-packet:enable WoWLAN with magic packet trigger' \
'p*atterns:MAC address triggers:$lladdrs' \
'r*fkill-release:enable WoWLAN with rfkill release trigger'
phy_wowlan_enable_cmds=("$reply[@]")
# Commands to go after "iw phy <DEV> wowlan"
local -a phy_wowlan_cmds
_regex_words phy-wowlan-commands "phy WoWLAN commands" \
's*how:show WoWLAN status' \
'd*isable:disable WoWLAN' \
'e*nable:enable WoWLAN:$phy_wowlan_enable_cmds'
phy_wowlan_cmds=("$reply[@]")
# Some parameters to hold patterns that will be used for "iw phy set" commands
# (not perfect, but mostly OK).
local -a phy_set_antenna phy_set_channel phy_set_coverage phy_set_frag phy_set_freq phy_set_distance
local -a phy_set_name phy_set_netns phy_set_rts phy_set_txpower phy_txpower_opt
phy_set_antenna=($matchany ':antenna:bitmap:')
phy_set_channel=($matchnum ':channel:channel (1-14):' $high_throughput)
phy_set_coverage=($matchnum ':coverage:coverage class (0-255):')
phy_set_distance=($matchnum ':distance:valid values\: 0 - 114750:')
phy_set_frag=(/$'([0-9]##|off)\0'/ ':channel:channel (1-14):(1 2 3 4 5 6 7 8 9 10 11 12 13 14 off)')
phy_set_freq=($frequency $high_throughput)
phy_set_name=($matchany ':name:device name:')
phy_set_netns=($matchany ':netns:network namespace:')
phy_set_rts=($matchnum ':rts:rts threshold:')
phy_txpower_opt=($matchany ':txpower:tx power in mBm:')
_regex_words phy-set-txpower "set txpower" \
'a*uto:auto:' \
'f*ixed:fixed:$phy_txpower_opt' \
'l*imit:limit:$phy_txpower_opt'
phy_set_txpower=("$reply[@]")
# Commands to go after "iw phy <DEV> set"
local -a phy_set_cmds
_regex_words phy-set-commands "phy set commands" \
'a*ntenna:set a bitmap of allowed antennas to use for TX and RX:$phy_set_antenna' \
'ch*annel:set channel:$phy_set_channel' \
'co*verage:set coverage class (1 for every 3 usec of air propagation time):$phy_set_coverage' \
'd*istance:set appropriate coverage class for given link distance in meters:$phy_set_distance' \
'fra*g:set fragmentation threshold:$phy_set_frag' \
'fre*q:set frequency/channel the hardware is using, including HT configuration:$phy_set_freq' \
'na*me:rename this wireless device:$phy_set_name' \
'ne*tns:set network namespace:$phy_set_netns' \
'r*ts:set rts threshold:$phy_set_rts' \
't*xpower:specify transmit power level and setting type:$phy_set_txpower'
phy_set_cmds=("$reply[@]")
# Commands to go after "iw phy <DEV> interface"
local -a phy_interface_cmds
# This needs work (should not offer meshid, fouraddr of flags more than once, and need to accomodate multiple flag options)
phy_interface_cmds=(\( /$'add\0'/ ':add:add a new virtual interface with the given configuration:(add)' $ifacename $ifacetype \
\( $meshid \| $fouraddr \| $flags \) \# \))
# Commands to go after "iw phy <DEV>"
local -a phy_cmds
_regex_words phy-commands "phy command" \
's*et:set/configure interface properties:$phy_set_cmds' \
'inf*o:show capabilities for the specified wireless device' \
'int*erface:add a new virtual interface with the given configuration:$phy_interface_cmds' \
'w*owlan:WoWLAN commands:$phy_wowlan_cmds'
phy_cmds=("$reply[@]")
# Parameters to hold patterns for dev commands
local -a dev_cmds_connect dev_cmds_cqm dev_cmds_get dev_cmds_ibss dev_cmds_interface dev_cmds_mesh dev_cmds_scan_options
local -a dev_cmds_mpath dev_cmds_offchannel dev_cmds_roc dev_cmds_scan dev_cmds_set dev_cmds_station dev_cmds_survey
dev_cmds_connect=($ssid $frequency $bssid $key)
dev_cmds_cqm=(/$'rssi\0'/ ':rssi:rssi:(rssi)' $matchnum ':thresh:threshold:' $matchnum ':hysteresis:hysteresis:')
dev_cmds_get=(/$'(mesh_param|power_save)\0'/ ':get:parameter:(mesh_param power_save)' $value)
# TODO: THIS NEEDS WORK! THE FINAL OPTIONS FOR JOIN NEED WORK
# dev <devname> ibss join <SSID> <freq in MHz> [fixed-freq] [<fixed bssid>] [beacon-interval <TU>] [basic-rates <rate in Mbps,rate2,...>] [mcast-rate <rate in Mbps>] [key d:0:abcde]
dev_cmds_ibss=(\( /$'leave\0'/ ':cmd:command:((leave:"Leave the IBSS cell"))' \| \( /$'join\0'/ ':cmd:command:((join\:"Join an IBSS cell"))' $ssid $frequency \( /$'fixed-freq\0'/ ':opt:option:((fixed-freq\:"fixed frequency (no args)"))' \| $bssid \| /$'beacon-interval\0'/ ':opt:option:((beacon-interval\:"beacon interval (takes single arg)"))' $numvalue \| /$'basic-rates\0'/ ':opt:option:((basic-rates\:"basic rates (comma separated list of rates)"))' $numvalue \| /$'mcast-rate\0'/ ':opt:option:((mcast-rate\:"multicast rate (takes single arg)"))' $numvalue \| $key \) \# \) \))
dev_cmds_interface=(/$'add\0'/ ':add:add:(add)' $ifacename $ifacetype \( $meshid \| $fouraddr \| $flags \) \# )
dev_cmds_mesh=(\( /$'leave\0'/ ':leave:leave a mesh:(leave)' \| /$'join\0'/ ':join:join a mesh:(join)' \
$matchnum ':meshid:mesh ID:' $matchany ':parameter:mesh parameters [<param>=<value>]*:' \# \))
dev_cmds_mpath=(\( /$'(del|get)\0'/ ':mpath:mesh path command:((del\:"remove the mesh path to the given node" \
get\:"get information on mesh path to the given node"))' $lladdr \| /$'(new|set)\0'/ ':mpath:mesh path \
command:((new\:"create a new mesh path (instead of relying on automatic discovery)" set\:"set an existing mesh \
paths next hop"))' $lladdr /$'next_hop\0'/ ':nexthop:next hop:(next_hop)' $lladdr \| /$'dump\0'/ ':mpath:mesh path \
command:((dump\:"list known mesh paths"))' \))
dev_cmds_offchannel=($frequency $matchnum ':duration:duration:')
dev_cmds_roc=(/$'start\0'/ ':start:start:(start)' $frequency $matchnum ':time:time:')
dev_cmds_scan_options=(/$'freq\0'/ ':freq:freq:(freq)' $frequency $frequency \# /$'ies\0'/ ':ies:ies:(ies)' $lladdr \( /$'ssid\0'/ ':ssid:ssid:(ssid)' $ssid \# \| /$'passive\0'/ ':opt:passive:(passive)' \))
dev_cmds_scan=(\( $dev_cmds_scan_options \| $matchany -'! [[ $match[1] =~ "dump|trigger" ]]' ':opt:option:((-u\:"include unknown data in results" \:""))' $dev_cmds_scan_options \| /$'dump\0'/ ':cmd:command:((dump\:"dump the current scan results"))' $matchany ':opt:option:((-u\:"include unknown data in results" \:""))' \| /$'trigger\0'/ ':cmd:command:((trigger\:"trigger a scan on the given frequencies with probing for the given SSIDs (or wildcard if not given) unless passive scanning is requested"))' $dev_cmds_scan_options \))
local -a dev_cmds_set_bitrates dev_cmds_set_freq dev_cmds_set_mesh_param
local -a dev_cmds_set_monitor dev_cmds_set_peer dev_cmds_set_power_save
local -a dev_cmds_set_type dev_cmds_set_txpower
# dev <devname> set bitrates [legacy-<2.4|5> <legacy rate in Mbps>*]
dev_cmds_set_bitrates=(/$'legacy-*\0'/ ':opt:legacy:(legacy-2.4 legacy-2.5)' $matchnum ':rate:legacy rate in Mbps:')
# dev <devname> set freq <freq> [HT20|HT40+|HT40-]
dev_cmds_set_freq=($frequency $high_throughput)
# dev <devname> set mesh_param <param>=<value> [<param>=<value>]*
dev_cmds_set_mesh_param=( $matchany ':val:param=value:' \# )
# dev <devname> set monitor <flag>*
dev_cmds_set_monitor=( $matchany ':flag:flag:((none\:"no special flags" fcsfail\:"show frames with FCS errors"\
control\:"show control frames" otherbss\:"show frames from other BSSes" cook\:"use cooked mode"))' \# )
# dev <devname> set peer <MAC address>
dev_cmds_set_peer=($lladdr)
# dev <devname> set power_save <on|off>
dev_cmds_set_power_save=(/$'(on|off)\0'/ ':opt:power save mode:(on off)')
_regex_words setcmds "dev set commands" \
'4*addr:set interface 4addr (WDS) mode:$fouronoff'\
'b*itrates:set/clear specified rate masks:$dev_cmds_set_bitrates'\
'c*hannel:set channel:$phy_set_channel'\
'f*req:set frequency:$dev_cmds_set_freq'\
'mesh_param:set mesh parameters:$dev_cmds_set_mesh_param'\
'meshid:set mesh id:$meshidval'\
'mo*nitor:set monitor flags:$dev_cmds_set_monitor'\
'pe*er:set interface WDS peer MAC address:$dev_cmds_set_peer'\
'po*wer_save:set power save on/off:$dev_cmds_set_power_save'\
'tx*power:set transmission power:$phy_set_txpower'\
'ty*pe:set type:$ifacetypes'
dev_cmds_set=("$reply[@]")
local -a dev_cmds_station_plink dev_cmds_station_vlan
dev_cmds_station_plink=(/$'(open|block)\0'/ ':opt::(open block)')
dev_cmds_station_vlan=($matchnum ':val:ifindex:')
local -a dev_cmds_station_set
_regex_words stationsetcmds "dev station set commands"\
'plink_action:set peer link action:$dev_cmds_station_plink'\
'vlan:set AP VLAN:$dev_cmds_station_vlan'
dev_cmds_station_set=(\( $lladdr \) "$reply[@]")
_regex_words stationcmds "dev station commands" \
'del:remove the given station entry (use with caution!):$lladdr'\
'dump:list all stations known, e.g. the AP on managed interfaces:'\
'get:get information for a specific station:$lladdr'\
'set:set AP VLAN or mesh peer link action:$dev_cmds_station_set'
dev_cmds_station=("$reply[@]")
dev_cmds_survey=(/$'dump\0'/ ':dump:list all gathered channel survey data:(dump)')
local -a dev_cmds
_regex_words dev-commands "dev commands" \
'co*nnect:join a network:$dev_cmds_connect' \
'cq*m:set connection quality monitor RSSI threshold:$dev_cmds_cqm' \
'de*l:remove this virtual interface' \
'di*sconnect:disconnect from the current network' \
'g*et:retrieve mesh parameter / power save state:$dev_cmds_get' \
'ib*ss:join/leave IBSS cell:$dev_cmds_ibss' \
'inf*o:show information for this interface' \
'int*erface:add an interface:$dev_cmds_interface' \
'l*ink:print information about the current link, if any' \
'me*sh:join/leave a mesh:$dev_cmds_mesh' \
'mp*ath:mesh path commands:$dev_cmds_mpath' \
'o*ffchannel:leave operating channel and go to the given channel for a while:$dev_cmds_offchannel' \
'r*oc:roc:$dev_cmds_roc' \
'sc*an:scan:$dev_cmds_scan' \
'se*t:set interface parameter:$dev_cmds_set' \
'st*ation:station commands:$dev_cmds_station' \
'su*rvey:list all gathered channel survey data:$dev_cmds_survey'
dev_cmds=( $devices "$reply[@]")
# Arguments to _regex_arguments, built up in array $args.
local -a args reply
# Command word. Don't care what that is.
args=( $matchany )
local -a phydevs
phy_devs=( \( $(iw list|grep '^[[:alnum:]]\+'|cut -f 2 -d ' ') \) )
phy_cmds=( \( $matchany ":test:test:$phy_devs[*]" \) "$phy_cmds[@]" )
_regex_words commands "iw command" \
'd*ev:commands to control/list the software devices:$dev_cmds' \
'e*vent:monitor events from the kernel:$event_opts' \
'h*elp:print usage for each command' \
'l*ist:list all wireless devices and their capabilities' \
'p*hy:commands to control the physical device:$phy_cmds' \
'r*eg:get/set regulatory domain:$reg_cmds'
args+=("$reply[@]")
_regex_arguments _iw "${args[@]}"
_iw "$@"
# Local Variables:
# mode:shell-script
# End:

View File

@ -1,145 +0,0 @@
#compdef jekyll
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for jekyll(http://jekyllrb.com)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * farseer90718 (https://github.com/farseer90718)
#
# ------------------------------------------------------------------------------
local ret=1 state
local -a common_ops
common_ops=(
{-v,--version}"[Display version information]"
{-h,--help}"[Display help documentation]"
{-p,--plugins}"[Plugins directory (defautls to ./_plugins)]: :_directories"
{-s,--source}"[Source directory (defaults to ./)]: :_directories"
{-d,--destination}"[Destination directory (defautls to ./_site)]: :_directories"
"--layouts=[Layouts directory (defaults to ./_layouts)]: :_directories"
"--safe=[Safe mode (defaults to false)]"
)
typeset -A opt_args
_arguments \
':subcommand:->subcommand' \
$common_ops \
'*::options:->options' && ret=0
case $state in
subcommand)
local -a subcommands
subcommands=(
"build:Build your site"
"docs:Launch local server with docs for jekyll"
"doctor:Search site and print specific deprecation warnings"
"help:Display global or [command] help documentation"
"import:Import your old blog to Jekyll"
"new:Creates a new Jekyll site scaffold in PATH"
"serve:Serve your site locally"
)
_describe -t subcommands 'jekyll subcommand' subcommands && ret=0
;;
options)
local -a args
args=(
$common_ops
)
local -a config
config=(
"--config[Custom configuration file]: :_files"
)
local -a help
help=(
{-h,--help}"[Display help information]"
)
local -a build
build=(
{-w,--watch}"[Watch for changes and rebuild]"
"--limit_posts[Limits the number of posts to parse and publish]"
"--future[Publishes posts with a future date]"
"--lsi[Use LSI for improved related posts]"
"--drafts[Render posts in the _drafts folder]"
)
case $words[1] in
help)
args=()
compadd "$@" build docs doctor help import new serve
;;
build)
args+=(
$build
$config
)
;;
docs)
args=(
{-p,--port}"[Port to listen on]: :_ports"
{-u,--host}"[Host to bind to]: :_hosts"
$help
)
;;
doctor)
args+=(
$config
)
;;
import)
args=(
"--source[Source file or URL to migrate from]:url"
"--file[File to migrate from]: :_files"
"--dbname[Database name to migrate from]:database"
"--user[Username to use when migrating]:user"
"--pass[Password to use when migrating]:password"
"--host[Host address to use when migrating]:url"
$help
)
;;
new)
args=(
": :_directories"
"--force[Force creation even if PATH already exists]"
"--blank[Creates scaffolding but with empty files]"
$help
)
;;
serve)
args+=(
$build
$config
{-P,--port}"[Port to listen on]: :_posts"
{-H,--host}"[Host to bind to]: :_hosts"
{-b,--baseurl}"[Base URL]:url"
)
esac
_arguments $args && ret=0
;;
esac
return ret
# 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

@ -1,62 +0,0 @@
#compdef lein
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Leiningen (https://github.com/technomancy/leiningen)
#
# Source: https://github.com/technolize/zsh-completion-funcs
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * technolize (https://github.com/technolize)
#
# ------------------------------------------------------------------------------
local ret=1 state
_arguments ':subcommand:->subcommand' && ret=0
case $state in
subcommand)
subcommands=(
"check:Check syntax and warn on reflection."
"classpath:Print the classpath of the current project."
"clean:Remove all files from project's target-path."
"compile:Compile Clojure source into .class files."
"deploy:Build and deploy jar to remote repository."
"deps:Download all dependencies."
"do:Higher-order task to perform other tasks in succession."
"help:Display a list of tasks or help for a given task."
"install:Install the current project to the local repository."
"jack-in:Jack in to a Clojure SLIME session from Emacs."
"jar:Package up all the project's files into a jar file."
"javac:Compile Java source files."
"new:Generate project scaffolding based on a template."
"pom:Write a pom.xml file to disk for Maven interoperability."
"pprint:Pretty-print a representation of the project map."
"repl:Start a repl session either with the current project or standalone."
"retest:Run only the test namespaces which failed last time around."
"run:Run a -main function with optional command-line arguments."
"search:Search remote maven repositories for matching jars."
"show-profiles:List all available profiles or display one if given an argument."
"test:Run the project's tests."
"trampoline:Run a task without nesting the project's JVM inside Leiningen's."
"uberjar:Package up the project files and dependencies into a jar file."
"upgrade:Upgrade Leiningen to specified version or latest stable."
"version:Print version for Leiningen and the current JVM."
"with-profile:Apply the given task with the profile(s) specified."
)
_describe -t subcommands 'leiningen subcommands' subcommands && ret=0
esac
return ret
# 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

@ -1,61 +0,0 @@
#compdef logger
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for logger (from bsdutils).
#
# Last updated: 26.02.2013
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim ( https://github.com/Valodim )
#
# ------------------------------------------------------------------------------
_logger_priority() {
local expl
if compset -P '*.'; then
# hidden aliases.. not quite sure how this is supposed to work :\
# compadd -n panic warning error
# just this one tag
_wanted priority expl "Priority" \
compadd -- debug info notice warn err crit alert emerg
return 0
fi
_wanted facility expl "Facility" \
compadd -S '.' -- kern user mail daemon auth syslog lpr news \
uucp cron security ftp ntp logaudit logalert clock \
local0 local1 local2 local3 local4 local5 local6 local7
return 0
}
_logger() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments -C -S -s \
{-d,--udp}'[use UDP (TCP is default)]' \
{-i,--id}'[log the process ID too]' \
{-f,--file}'[log the contents of this file]:Logfile:_files' \
'(-)'{-h,--help}'[display this help text and exit]' \
{-n,--server}'[write to this remote syslog server]:Server:_hosts' \
{-P,--port}'[use this UDP port]:UDP Port' \
{-p,--priority}'[mark given message with this priority]:Priority:_logger_priority' \
{-s,--stderr}'[output message to standard error as well]' \
{-t,--tag}'[mark every line with this tag]:Tag' \
{-u,--socket}'[write to this Unix socket]:Socket:_files -W *(=)' \
'(-)'{-V,--version}'[output version information and exit]' \
'*:Message:' && return 0
}
_logger "$@"

View File

@ -1,314 +0,0 @@
#compdef lunar lin lrm lvu
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Lunar (http://www.lunar-linux.org)
#
# Source: https://github.com/Valodim/lunar-zsh-completion
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim (https://github.com/Valodim)
#
# ------------------------------------------------------------------------------
# completion for lunar itself (different name, see below)
_lunar_comp() {
local suf ret=1 curcontext="$curcontext"
local -a vals state line expl
# regular arguments, this will probably just hand down to the * command below
_arguments -C \
'(- :)-d[Enables debug messages]' \
'(- :)-h[Display help text]' \
'(- :)-v[Increases the level of message output]' \
'*::command:->command' && return 0
# complete the first word, ie. subcommand
if (( CURRENT == 1 )); then
local -a lunar_commands
# all lunar subcommands
lunar_commands=(
'prune:Removes old sources and install/compile logs'
'renew:Checks ver. against moonbase & recompiles if necessary'
'update:Fetches latest moonbase and then does a "renew"'
'rebuild:Recompiles all installed modules'
'optimize:Shortcut to the optimization menu'
'fix:Check and fix all modules and internal state of lunar'
'nofix:Check but do not fix modules and internal state'
'fixdepends:Check and fix the dependency database of lunar'
'set:Check internal variable(s) and assign their values'
'unset:Unsets an internal variable'
'resurrect:Force modulename(s) to be unpacked from /var/cache'
'install:Install a checklist of modules'
'remove:Remove a checklist of modules'
'hold:Place a hold on a checklist of modules'
'unhold:Remove a hold on a checklist of modules'
'exile:Remove a module a/o prevent it from being resurrected'
'unexile:Allows a module to be compiled|resurrected again')
# just show the commands with description
_describe -t commands 'lunar command' lunar_commands && ret=0
return ret
else
# at this point, we have to decide what to complete for specific subcommands
# make a list of subcommands with no further arguments for later
local -a lunar_no_args
lunar_no_args=( prune renew update rebuild optimize fix nofix fixdepends )
# update the current context
curcontext="${curcontext%:*:*}:lunar-$words[1]:"
# if there is a specific function of the form _lunar-subcommand
if (( $+functions[_lunar-$words[1]] )); then
# call that for completion
_call_function ret _lunar-$words[1]
elif [[ -n "${lunar_no_args[(r)${words[1]}]}" ]]; then
# all commands from the array above take no further arguments
_message "lunar ${words[1]} requires no arguments"
else
# by default, complete modules
_lunar_modules
fi
return ret
fi
}
# specific completion for lunar set
_lunar-set() {
# second argument: all lunar variables
if (( CURRENT == 2 )); then
local vars
vars=( ${(f)"$(cat /var/lib/lunar/unset.sh | cut -d' ' -f2)"} )
_describe -t modules 'lunar variable' vars && return 0
# third argument: some value
elif (( CURRENT == 3 )); then
_message "value"
# no further argument
else
_message "no further arguments"
fi
}
_lunar-unset() {
local vars
vars=( ${(f)"$(cat /var/lib/lunar/unset.sh | cut -d' ' -f2)"} )
_describe -t modules 'lunar variable' vars && return 0
}
_lunar-unhold() {
local vals
vals=( ${(f)"$(lvu held | sort | uniq)"} )
_describe -t modules 'held modules' vals && return 0
}
_lunar-unexile() {
local vals
vals=( ${(f)"$(lvu exiled | sort | uniq)"} )
_describe -t modules 'exiled modules' vals && return 0
}
_lrm() {
_arguments \
'(-d --debug)'{-d,--debug}'[Enables debug messages]' \
'(-D --downgrade)'{-D,--downgrade}'[downgrades a module]:module:_lunar_modules:version' \
'(-h --help)'{-h,--help}'[Displays this help text]' \
'(-k --keepconfig)'{-k,--keepconfig}'[remove module(s) but keep dependencies and config]' \
'(-n --nosustain)'{-n,--nosustain}'[removes module(s) even if they are sustained]' \
'(-u --upgrade)'{-u,--upgrade}'[remove the module but do not run scripts etc.]' \
'(-v --verbose)'{-v,--verbose}'[Increases the level of message output]' \
'(-p --purge)'{-p,--purge}'[Delete all modules that depend on the module(s) being removed as well]' \
'*:module:_lunar_installed_modules' && return 0
}
_lin() {
_arguments \
'(-c --compile)'{-c,--compile}'[Ignore /var/cache/lunar and compiles]' \
'(-d --debug)'{-d,--debug}'[Enables debug messages]' \
'--deps[Configure modules and determine dependencies]' \
'(-f --from)'{-f,--from}'[Specify an alternate for /var/spool/lunar]:directory:_files -/' \
'(-h --help)'{-h,--help}'[Displays help text]' \
'--opts[Add custom configure options to the module]:configure option string' \
'(-p --probe)'{-p,--probe}'[Only lin if not already installed]' \
'(-r --reconfigure)'{-r,--reconfigure}'[Select new dependencies for modules]' \
'(-R --resurrect)'{-R,--resurrect}'[Force to be unpacked from /var/cache/lunar]' \
'(-s --silent)'{-s,--silent}'[Decreases the level of message output]' \
'(-v --verbose)'{-v,--verbose}'[Increases the level of message output]' \
'(-w --want)'{-w,--want}'[Try to install a different version]:wanted version' \
'*:module:_lunar_modules' && return 0
}
# completion for lvu, very similar to the lunar one above (therefore uncommented)
_lvu() {
local suf ret=1 curcontext="$curcontext"
local -a vals state line expl
_arguments -C \
'(- :)-d[Enables debug messages]' \
'(- :)-h[Display help text]' \
'(- :)-v[Increases the level of message output]' \
'*::command:->command' && return 0
if (( CURRENT == 1 )); then
local -a lvu_commands
lvu_commands=(
'what:display a module''s description'
'short:display a module''s short description'
'where:display a module''s section'
'cd:change directory to module and execs a new shell'
'alien:discover untracked files'
'from:discover what installed a given file'
'leafs:display installed modules that have no explicit dependencies on them'
'orphans:display installed modules that are missing dependencies'
'conflicts:display conflicting files'
'held:display held modules'
'exiled:display exiled modules'
'expired:display a list of modules which need an update'
'info:display terse summary information about module'
'search:searches all modules long descriptions for phrase.'
'service:displays modules that provide that service'
'website:display a module''s website'
'install:display an install log'
'size:find and show installed size of a module or ALL (slow)'
'installed:display installed modules/version of module'
'compile:display a compile log'
'compiler:display the compiler version used'
'links:display a list of modules that this module links to'
'sources:display source files for a module'
'urls:display all URLs for a module'
'maintainer:display maintainer for a module'
'version:display version of module in moonbase'
'new:attempt to create a new module from scratch'
'edit:copy a module to zlocal for editing'
'diff:view changes on edited module'
'submit:attempt to submit a module to the lunar ML'
'unedit:delete zlocal copy of a module'
'sum:display checksums'
'md5sum:display md5sums'
'export:make snapshot of box''s configuration.'
'import:restores an exported snapshot.'
'section:display moonbase sections'
'moonbase:display text listing of the moonbase'
'html:display html listing of the moonbase'
'updatelog:display summary log of previous lunar update'
'activity:display main log file'
'newer:display available modules newer than Aug 01, 2003'
'older:display modules installed before Jan 01, 2003'
'voyeur:peak into module compilation'
'pam:display installed modules that are Linux-PAM aware'
'depends:displays installed modules that explicitly or recursively depend on this module.'
'tree:displays a tree of the module''s dependencies'
'stree:same as ''tree'' but highly abbreviated'
'eert:same as ''tree'' but reverse and installed deps only'
'leert:full reverse dependency tree')
_describe -t commands 'lvu command' lvu_commands && ret=0
return ret
elif (( CURRENT == 2 )); then
local -a lvu_no_args
lvu_no_args=( alien leafs orphans conflicts held exiled expired export moonbase html updatelog pam )
curcontext="${curcontext%:*:*}:lvu-$words[1]:"
if (( $+functions[_lvu-$words[1]] )); then
_call_function ret _lvu-$words[1]
elif [[ -n "${lvu_no_args[(r)${words[1]}]}" ]]; then
_message "lvu ${words[1]} requires no arguments"
else
_lunar_modules
fi
return ret
else
_message "No further arguments"
fi
}
_lvu-service() {
_alternative \
'service:service name:_lvu-service-service' \
'port:port number:_guard "[0-9]#" "port number"'
}
_lvu-service-service() {
local vals
vals=( ${(f)"$(cat /etc/services | grep -E -o '^(\w+)' | sort | uniq)"} )
_describe -t modules 'service' vals && return 0
}
_lvu-diff() {
local vals
vals=( /var/lib/lunar/moonbase/zlocal/*(/:t) )
_describe -t modules 'moonbase module from zlocal' vals && return 0
}
_lvu-unedit() {
local vals
vals=( /var/lib/lunar/moonbase/zlocal/*(/:t) )
_describe -t modules 'moonbase module from zlocal' vals && return 0
}
_lvu-newer() {
_message "date string"
}
_lvu-older() {
_message "date string"
}
_lvu-import() {
_files
}
_lvu-from() {
_files
}
_lvu-new() {
_message "module name"
}
_lvu-search() {
_message "search string"
}
# specific completion for moonbase modules
_lunar_modules() {
local vals
vals=( /var/lib/lunar/moonbase/*/*(/:t) )
_describe -t modules 'moonbase module' vals && return 0
}
# specific completion for moonbase modules
_lunar_installed_modules() {
local vals
vals=( ${(f)"$(lvu installed | cut -d':' -f1)"} )
_describe -t modules 'moonbase installed module' vals && return 0
}
# hub function called for completion
_lunar() {
# decide which completion to use
case "$service" in
lin) _lin "$@";;
lrm) _lrm "$@";;
lvu) _lvu "$@";;
lunar) _lunar_comp "$@";;
*) _message "unknown command $service";;
esac
}
_lunar "$@"
# 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

@ -1,276 +0,0 @@
#compdef manage.py django-admin.py
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Django's manage.py (https://www.djangoproject.com).
#
# Source: https://github.com/technolize/zsh-completion-funcs
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * technolize (https://github.com/technolize)
#
# ------------------------------------------------------------------------------
_managepy-cleanup(){}
_managepy-compilemessages(){}
_managepy-createcachetable(){
_arguments -s : \
$nul_args && ret=0
}
_managepy-dbshell(){
_arguments -s : \
$nul_args && ret=0
}
_managepy-diffsettings(){
_arguments -s : \
$nul_args && ret=0
}
_managepy-dumpdata(){
_arguments -s : \
'--format=-[specifies the output serialization format for fixtures.]:format:(json yaml xml)' \
'--indent=-[specifies the indent level to use when pretty-printing output.]:' \
$nul_args \
'*::appname:_applist' && ret=0
}
_managepy-flush(){
_arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \
$nul_args && ret=0
}
_managepy-help(){
_arguments -s : \
'*:command:_managepy_cmds' \
$nul_args && ret=0
}
_managepy_cmds(){
local line
local -a cmd
_call_program help-command ./manage.py help \
|& sed -n '/^ /s/[(), ]/ /gp' \
| while read -A line; do cmd=($line $cmd) done
_describe -t managepy-command 'manage.py command' cmd
}
_managepy-inspectdb(){
_arguments -s : \
$nul_args && ret=0
}
_managepy-loaddata(){
_arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \
'*::file:_files' \
$nul_args && ret=0
}
_managepy-makemessages(){}
_managepy-reset(){
_arguments -s : \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \
'*::appname:_applist' \
$nul_args && ret=0
}
_managepy-runfcgi(){
local state
local fcgi_opts
fcgi_opts=(
'protocol[fcgi, scgi, ajp, ... (default fcgi)]:protocol:(fcgi scgi ajp)'
'host[hostname to listen on..]:'
'port[port to listen on.]:'
'socket[UNIX socket to listen on.]::file:_files'
'method[prefork or threaded (default prefork)]:method:(prefork threaded)'
'maxrequests[number of requests a child handles before it is killed and a new child is forked (0 = no limit).]:'
'maxspare[max number of spare processes / threads.]:'
'minspare[min number of spare processes / threads.]:'
'maxchildren[hard limit number of processes / threads.]:'
'daemonize[whether to detach from terminal.]:boolean:(False True)'
'pidfile[write the spawned process-id to this file.]:file:_files'
'workdir[change to this directory when daemonizing.]:directory:_files'
'outlog[write stdout to this file.]:file:_files'
'errlog[write stderr to this file.]:file:_files'
)
_arguments -s : \
$nul_args \
'*: :_values "FCGI Setting" $fcgi_opts' && ret=0
}
_managepy-runserver(){
_arguments -s : \
'--noreload[tells Django to NOT use the auto-reloader.]' \
'--adminmedia[specifies the directory from which to serve admin media.]:directory:_files' \
$nul_args && ret=0
}
_managepy-shell(){
_arguments -s : \
'--plain[tells Django to use plain Python, not IPython.]' \
$nul_args && ret=0
}
_managepy-sql(){}
_managepy-sqlall(){}
_managepy-sqlclear(){}
_managepy-sqlcustom(){}
_managepy-sqlflush(){}
_managepy-sqlindexes(){}
_managepy-sqlinitialdata(){}
_managepy-sqlreset(){}
_managepy-sqlsequencereset(){}
_managepy-startapp(){}
_managepy-startproject(){
_arguments -s : \
"(-v --verbosity)"{-v,--verbosity}"[Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output.]:Verbosity:((0\:minimal 1\:normal 2\:verbose 4\:very\ verbose))" \
'--template[The path or URL to load the template from.]:file:_files' \
"(-e --extension)"{-e,--extension}"[The file extension(s) to render (default: "py"). Separate multiple extensions with commas, or use -e multiple times.]" \
"(-n --name)"{-n,--name}"[The file name(s) to render. Separate multiple extensions with commas, or use -n multiple times. --version show program\'s version number and exit]:file:_files" \
$nul_args \
'*::args:_gnu_generic'
}
_managepy-syncdb() {
_arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \
$nul_args && ret=0
}
_managepy-test() {
_arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \
'--noinput[tells Django to NOT prompt the user for input of any kind.]' \
'*::appname:_applist' \
$nul_args && ret=0
}
_managepy-testserver() {
_arguments -s : \
'--verbosity=-[verbosity level; 0=minimal output, 1=normal output, 2=all output.]:Verbosity:((0\:minimal 1\:normal 2\:all))' \
'--addrport=-[port number or ipaddr:port to run the server on.]' \
'*::fixture:_files' \
$nul_args && ret=0
}
_managepy-validate() {
_arguments -s : \
$nul_args && ret=0
}
_managepy-changepassword(){}
_managepy-createsuperuser(){}
_managepy-collectstatic(){}
_managepy-findstatic(){}
_managepy-commands() {
local -a commands
commands=(
'cleanup:Can be run as a cronjob or directly to clean out old data from the database (only expired sessions at the moment).'
'compilemessages:Compiles .po files to .mo files for use with builtin gettext support.'
'createcachetable:creates the table needed to use the SQL cache backend.'
'dbshell:runs the command-line client for the current DATABASE_ENGINE.'
"diffsettings:displays differences between the current settings.py and Django's default settings."
'dumpdata:Output the contents of the database as a fixture of the given format.'
'flush:Executes ``sqlflush`` on the current database.'
'help:manage.py help.'
'inspectdb:Introspects the database tables in the given database and outputs a Django model module.'
'loaddata:Installs the named fixture(s) in the database.'
'makemessages:Runs over the entire source tree of the current directory and pulls out all strings marked for translation.'
'makemigrations:Creates new migrations based on the changes detected to your models.'
'migrate:Synchronizes the database state with the current set of models and migrations.'
'reset:Executes ``sqlreset`` for the given app(s) in the current database.'
'runfcgi:Run this project as a fastcgi (or some other protocol supported by flup) application,'
'runserver:Starts a lightweight Web server for development.'
'shell:Runs a Python interactive interpreter.'
'showmigrations:Shows all migrations in a project.'
'sql:Prints the CREATE TABLE SQL statements for the given app name(s).'
'sqlall:Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).'
'sqlclear:Prints the DROP TABLE SQL statements for the given app name(s).'
'sqlcustom:Prints the custom table modifying SQL statements for the given app name(s).'
'sqldropindexes:Prints the DROP INDEX SQL statements for the given app name(s).'
'sqlflush:Returns a list of the SQL statements required to return all tables in the database to the state they were in just after they were installed.'
'sqlindexes:Prints the CREATE INDEX SQL statements for the given model module name(s).'
'sqlmigrate:Prints the SQL for the named migration.'
"sqlinitialdata:RENAMED: see 'sqlcustom'"
'sqlreset:Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).'
'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).'
'squashmigrations:Squashes the migrations for app_label up to and including migration_name down into fewer migrations.'
"startapp:Creates a Django app directory structure for the given app name in this project's directory."
"startproject:Creates a Django project directory structure for the given project name in the current directory or the given destination."
"syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created."
'test:Runs the test suite for the specified applications, or the entire site if no apps are specified.'
'testserver:Runs a development server with data from the given fixture(s).'
'validate:Validates all installed models.'
)
if [[ $words[1] =~ "manage.py$" ]]; then
commands=($commands
"changepassword:Change a user's password for django.contrib.auth."
'createsuperuser:Used to create a superuser.'
'collectstatic:Collect static files in a single location.'
'findstatic:Finds the absolute paths for the given static file(s).'
)
fi
_describe -t commands 'manage.py command' commands && ret=0
}
_applist() {
local line
local -a apps
_call_program help-command "python -c \"import os.path as op, re, settings, sys;\\
bn=op.basename(op.abspath(op.curdir));[sys\\
.stdout.write(str(re.sub(r'^%s\.(.*?)$' %
bn, r'\1', i)) + '\n') for i in settings.\\
INSTALLED_APPS if re.match(r'^%s' % bn, i)]\"" \
| while read -A line; do apps=($line $apps) done
_values 'Application' $apps && ret=0
}
_manage.py() {
local -a nul_args
nul_args=(
'--settings=-[the Python path to a settings module.]:file:_files'
'--pythonpath=-[a directory to add to the Python path.]::directory:_directories'
'--traceback[print traceback on exception.]'
"--version[show program's version number and exit.]"
{-h,--help}'[show this help message and exit.]'
)
local curcontext=$curcontext ret=1
if ((CURRENT == 2)); then
_managepy-commands
else
shift words
(( CURRENT -- ))
curcontext="${curcontext%:*:*}:managepy-$words[1]:"
_call_function ret _managepy-$words[1]
fi
}
_manage.py "$@"
# 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

@ -1,26 +0,0 @@
#compdef pactree
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for pactree 4.0
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Limao Luo <luolimao@gmail.com>
#
# ------------------------------------------------------------------------------
typeset -A opt_args
_pactree() {
local -a cmd packages packages_long
packages_long=(/var/lib/pacman/local/*(/))
packages=( ${${packages_long#/var/lib/pacman/local/}%-*-*} )
compadd "$@" -a packages
}
# run the main dispatcher
_pactree "$@"

View File

@ -1,89 +0,0 @@
#compdef pear
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Pear (http://pear.php.net).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * aki77 (https://github.com/aki77)
#
# ------------------------------------------------------------------------------
_pear () {
local curcontext="$curcontext" state line expl ret=1
_arguments \
'1: :->subcmds' \
'*:: :->args' && ret=0
case $state in
subcmds)
_pear_commands
;;
args)
local cmd args
cmd=$words[1]
args=()
case $cmd in
channel-alias|channel-delete|channel-info|channel-update)
args+=(
':channel:_pear_discovered_channels'
)
;;
uninstall|upgrade|run-scripts)
args+=(
':package:_pear_installed_packages'
)
;;
esac
_arguments "$args[@]" && ret=0
return
;;
esac
return ret
}
_pear_commands () {
local commands
commands=(
${${(f)${"$(_call_program commands $service 2>&1)"#*Commands:}%Usage:*}/[[:blank:]]*[[:blank:]][[:blank:]]/:}
)
_describe -t commands 'Pear commands' commands
}
_pear_installed_packages () {
local packages
packages=(
${${(f)"$(pear list)"#*STATE}%%[[:blank:]]*}
)
_wanted package expl 'package' compadd -a packages
}
_pear_discovered_channels () {
local channels
channels=(
${${${(f)"$(_call_program commands pear list-channels)"#*SUMMARY}%__uri*}%%[[:blank:]]*}
)
_wanted channel expl 'channel' compadd -a channels
}
_pear "$@"
# 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

@ -1,43 +0,0 @@
# compdef primus
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for primus (https://github.com/amonakov/primus).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Christophe-Marie Duquesne <chm.duquesne@gmail.com>
#
# ------------------------------------------------------------------------------
local curcontext="$curcontext" state line
typeset -A opt_args
args=(
'--version[output version information]'
'(-h --help)'{-h,--help}'[show help]'
'(-c --vgl-compress)'{-c,--vgl-compress}'[image transport method]:method:(proxy jpeg rgb xb yuv)'
'--failsafe[run a program even if the nvidia card is unavailable]'
'--no-failsafe[do not run a program if the nvidia card is unavailable]'
'--vgl-options[options to be passed to vglrun (example: +tr)]'
'(-q --quiet --silent)'{-q,--quiet,--silent}'[suppress all logging messages]'
'(-v --verbose)'{-v,--verbose}'[increase the verbosity level of log messages]'
'--debug[set the verbosity level to the maximum]'
'(-d --display)'{-d,--display}'[the X display number to use]'
'(-C --config)'{-C,--config}'[retrieve settings for Bumblebee from FILE]:file:_files'
'(-l --ldpath)'{-l,--ldpath}'[PATH the libraries like libGL.so are searched in]:file:_files -/'
'(-s --socket)'{-s,--socket}'[use FILE for communication with the daemon]:file:_files'
)
_arguments $args
# -c, --vgl-compress METHOD image compression or transport to use with
# VirtualGL. Valid values for METHOD are proxy,
# jpeg, rgb, xv and yuv. Changing this setting
# may affect performance, CPU usage and image
# quality
# -d, --display DISPLAY the X display number to use

View File

@ -1,94 +0,0 @@
#compdef rebar
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for rebar (https://github.com/rebar/rebar).
#
# Source: https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/rebar/_rebar
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * YeJun Su <goofan.su@gmail.com>
#
# ------------------------------------------------------------------------------
local curcontext=$curcontext state ret=1
typeset -ga _rebar_global_opts
_rebar_global_opts=(
'(--help -h)'{--help,-h}'[Show the program options]'
'(--commands -c)'{--commands,-c}'[Show available commands]'
'(--version -V)'{--version,-V}'[Show version information]'
'(-vvv -vv -v)'--verbose+'[Verbosity level. Default: 0]:verbosity level:(0 1 2 3)'
'(-vvv)-v[Slightly more verbose output]'
'(-vvv)-vv[More verbose output]'
'(-v -vv)-vvv[Most verbose output]'
'(--force -f)'{--force,-f}'[Force]'
'-D+[Define compiler macro]'
'(--jobs -j)'{--jobs+,-j+}'[Number of concurrent workers a command may use. Default: 3]:workers:(1 2 3 4 5 6 7 8 9)'
'(--config -C)'{--config,-C}'[Rebar config file to use]:files:_files'
'(--profile -p)'{--profile,-p}'[Profile this run of rebar]'
'(--keep-going -k)'{--keep-going,-k}'[Keep running after a command fails]'
)
_rebar () {
_arguments -C $_rebar_global_opts \
'*::command and variable:->cmd_and_var' \
&& return
case $state in
cmd_and_var)
_values -S = 'variables' \
'clean[Clean]' \
'compile[Compile sources]' \
'create[Create skel based on template and vars]' \
'create-app[Create simple app skel]' \
'create-node[Create simple node skel]' \
'list-template[List avaiavle templates]' \
'doc[Generate Erlang program documentation]' \
'check-deps[Display to be fetched dependencies]' \
'get-deps[Fetch dependencies]' \
'update-deps[Update fetched dependencies]' \
'delete-deps[Delete fetched dependencies]' \
'list-deps[List dependencies]' \
'generate[Build release with reltool]' \
'overlay[Run reltool overlays only]' \
'generate-appups[Generate appup files]' \
'generate-upgrade[Build an upgrade package]' \
'eunit[Run eunit tests]' \
'ct[Run common_test suites]' \
'qc[Test QuickCheck properties]' \
'xref[Run cross reference analysis]' \
'help[Show the program options]' \
'version[Show version information]' \
'apps[Application names to process]:' \
'case[Common Test case]:' \
'dump_spec[Dump reltool spec]:' \
'jobs[Number of workers]::workers:(0 1 2 3 4 5 6 7 8 9)' \
'suites[Common Test suites]::suite name:_path_files -W "(src test)" -g "*.erl(:r)"' \
'verbose[Verbosity level]::verbosity level:(0 1 2 3)' \
'appid[Application id]:' \
'previous_release[Previous release path]:' \
'nodeid[Node id]:' \
'root_dir[Reltool config root directory]::directory:_files -/' \
'skip_deps[Skip deps]::flag:(true false)' \
'skip_apps[Application names to not process]::flag:(true false)' \
'template[Template name]:' \
'template_dir[Template directory]::directory:_files -/' \
&& ret=0
;;
esac
}
_rebar
# Local variables:
# mode: shell-script
# sh-basic-offset: 2
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: sw=2 ts=2 et filetype=sh

View File

@ -1,233 +0,0 @@
#compdef socat
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for socat ( http://www.dest-unreach.org/socat/ ).
#
# Source: https://github.com/Valodim/zsh-socat-completion
# Last updated: 23.02.2013, commit 3c564c9
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Valodim ( https://github.com/Valodim )
#
# ------------------------------------------------------------------------------
if (( ! $+_socat_params || ! $+_socat_groups )); then
# we cache socat parameters, groups, option groups, option types parsed
# straight from socat, since these are platform specific
typeset -gHA _socat_params _socat_groups _socat_opt_groups _socat_opt_types
if _cache_invalid socat-params || _cache_invalid socat-groups \
|| ! _retrieve_cache socat-params || ! _retrieve_cache socat-groups ; then
() {
setopt localoptions rematchpcre
local line
# anyone know a better way to do "get rest starting from matching line" than awk?
_call_program socat-params socat -h | awk '/address-head:/,0 { print }' | while read -r line; do
# parse line, format: proxy:<proxy-server>:<host>:<port> groups=A,B,C
[[ $line =~ '([^:]+)((?::<[^:]+>)*)\s+groups=(.+)' ]] || continue
# canonicalize and note down parameters
_socat_params[$match[1]]=${${${match[2]#:}//(\<|\>)/}//:/,}
# store groups for this parameter
_socat_groups[$match[1]]=${match[3]}
done
_store_cache socat-params _socat_params
_store_cache socat-groups _socat_groups
}
fi
if _cache_invalid socat-opt-groups || _cache_invalid socat-opt-types \
|| ! _retrieve_cache socat-opt-groups || ! _retrieve_cache socat-opt-types ; then
() {
setopt localoptions rematchpcre
local line
_call_program socat-opts socat -hh | awk '/opt:/,0 { print }' | while read -r line; do
# parse format: wronly groups=OPEN phase=OPEN type=BOOL
[[ $line =~ ' *(\w+)\s+groups=(\w+)\s.+type=(\w+)' ]] || continue
_socat_opt_groups[$match[1]]=$match[2]
_socat_opt_types[$match[1]]=${(L)match[3]}
done
}
_store_cache socat-opt-groups _socat_opt_groups
_store_cache socat-opt-types _socat_opt_types
fi
fi
if (( ! $+_socat_param_handler )); then
typeset -gHA _socat_param_handler
# bunch of manually extracted parameter handlers. names work as both
_socat_param_handler=(
create _files
gopen _files
open _files
pipe '_files -g *(p)'
unix-connect '_files -g *(=)'
unix-listen '_files -g *(=)'
unix-sendto '_files -g *(=)'
unix-recvfrom '_files -g *(=)'
unix-client '_files -g *(=)'
host '_hosts -S : -r :,\ \\t\\n\\-'
)
fi
if (( ! $+_socat_opt_handler )); then
typeset -gHA _socat_opt_handler
# bunch of manually extracted handlers
_socat_opt_handler=(
history _files
lockfile _files
waitlock _files
allow-table _files
deny-table _files
link _files
cert _files
key _files
dhparams _files
cafile _files
egdfile _files
capath '_files -/'
tcpwrap-etc '_files -/'
capath '_files -/'
chroot-early '_files -/'
path _directories
group _groups
group-early _groups
group-late _groups
setgid _groups
setgid-early _groups
user _users
user-early _users
user-late _users
setuid _users
setuid-early _users
su _users
su-d _users
)
fi
_socat_address_head() {
setopt localoptions extendedglob
# do we have a socket type yet?
if ! compset -P 1 '(#b)(*)(:|,)'; then
# all which have pameters (ie, non-empty values)
compadd -M 'M:{[:upper:]}={[:lower:]}' -S : -r ":, \t\n\-" -k '_socat_params[(R)?*]'
# others (ie, empty value)
compadd -M 'M:{[:upper:]}={[:lower:]}' -S , -q -k '_socat_params[(R)]'
return 0
fi
local expl ret=1
# any parameters?
local socket_type="${(L)match[1]}" lastop="$match[2]"
local -a params_left
params_left=( "${(@s:,:)_socat_params[$socket_type]}" )
if [[ $lastop == ':' ]]; then
# chunk away the parameters
while compset -P 1 '[^:]#:'; do
(( $#params_left > 0 )) && shift params_left
done
if compset -P '*,'; then
lastop=','
elif (( $#params_left == 0 )); then
_message -e parameters "No more parameters for $socket_type" && return 0
else
# do we have a handler? this works either by typename or socket type
if (( $+_socat_param_handler[$socket_type] )); then
_wanted param expl "parameter $params_left[1]" "${(@z)_socat_param_handler[$socket_type]}" && return 0
elif (( $+_socat_param_handler[${params_left[1]}] )); then
_wanted param expl "parameter $params_left[1]" "${(@z)_socat_param_handler[$params_left[1]]}" && return 0
else
_message -e parameters "$params_left[1]" && return 0
fi
fi
# shift to make warning msg below accurate
(( $#params_left > 0 )) && shift params_left
fi
# got any params left? At least leave a note..
(( $#params_left > 0 )) && _message -e parameters "Unfilled parameters: $params_left"
if [[ $lastop == ',' ]]; then
# chip away all old opts
compset -P '*,'
# is it one with a type?
if compset -P '(#b)(*)\='; then
if (( $+_socat_opt_types[$match[1]] )); then
# do we have a handler?
if (( $+_socat_opt_handler[$match[1]] )); then
_wanted optparam expl "option parameter <$_socat_opt_types[$match[1]]>" "${(@z)_socat_opt_handler[$match[1]]}" && return 0
else
_message -e optparam "opt param for $match[1]: $_socat_opt_types[$match[1]]" && return 0
fi
else
_message -e optparam "opt param for $match[1]: unknown" && return 0
fi
fi
# add completions for all groups, then
_tags "${(s:,:)_socat_groups[$socket_type]}"
while _tags; do
for g in ${(s:,:)_socat_groups[$socket_type]}; do
_requested $g expl "${(L)g}" \
compadd -M 'M:{[:upper:]}={[:lower:]}' -S = -r '=, \t\n\-' -k "_socat_opt_groups[(R)$g]" && ret=0
done
(( ret )) || break
done
fi
return ret
}
# complete common options
_arguments \
-V'[print version and feature information to stdout, and exit]' \
-h'[print a help text describing command line options and addresses, and exit]' \
-hh'[like -h, plus a list of all common address option names]' \
-hhh'[like -hh, plus a list of all available address option names]' \
\*-d'[increase verbosity (use up to 4 times; 2 are recommended)]' \
-D'[analyze file descriptors before loop]' \
-ly'[log to syslog, using facility (default is daemon)]:log facility:( auth authpriv cron daemon kern lpr mail mark news security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 )' \
-lf'[log to file]:log file:_files' \
-ls'[log to stderr (default if no other log)]' \
-lm'[mixed log mode (stderr during initialization, then syslog)]:log facility:( auth authpriv cron daemon kern lpr mail mark news security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 )' \
-lp'[set the program name used for logging]:log program name' \
-lu'[use microseconds for logging timestamps]' \
-lh'[add hostname to log messages]' \
'(-x)'-v'[verbose data traffic, text]' \
'(-v)'-x'[verbose data traffic, hexadecimal]' \
-b'[set data buffer size (8192)]:buffer size (bytes)' \
-s'[sloppy (continue on error)]' \
-t'[wait seconds before closing second channel]:timeout (seconds)' \
-T'[total inactivity timeout in seconds]:timeout (seconds)' \
'(-U)'-u'[unidirectional mode (left to right)]' \
'(-u)'-U'[unidirectional mode (right to left)]' \
-g'[do not check option groups]' \
'(-W)'-L'[try to obtain lock, or fail]:lockfile:_files' \
'(-L)'-W'[try to obtain lock, or wait]:lockfile:_files' \
'(-6)'-4'[prefer IPv4 if version is not explicitly specified]' \
'(-4)'-6'[prefer IPv6 if version is not explicitly specified]' \
'*:socket:_socat_address_head' && return 0

View File

@ -1,456 +0,0 @@
#compdef symfony
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Symfony (http://www.symfony-project.org).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * aki77 (https://github.com/aki77)
#
# ------------------------------------------------------------------------------
_symfony () {
local curcontext="$curcontext" state line expl ret=1 cache_version
cache_version=$(_get_sf_cache_var version)
(( ${(P)+cache_version} == 0 )) && {
eval $cache_version=${${${(z)$($service -V)}[3]}%.*}
}
if [ ${(P)cache_version} = "1.0" ] ; then
_symfony10
return
fi
_arguments -C \
'(-T --tasks)'{-T,--tasks}'[list of the symfony tasks]' \
'(-V --version)'{-V,--version}'[version]' \
'1: :->tasks' \
'*:: :->args' && ret=0
case $state in
tasks)
_sf_tasks
;;
args)
local task args
task=$words[1]
args=(
${${${${${(M)${${${(z)${${"$($service help $task)"#*Usage:}#[[:cntrl:]]}%%[[:cntrl:]]*}//\[/}//\]/}:#--*}%%\"*}/=/"=-"}/(#b)--(app|application)=-/--$match[1]=-:application:_sf_apps}//(#b)--(env|environment)=-/--$match[1]=-:environment:_sf_environments}
)
case $task in
help)
args+=(
':task:_sf_tasks'
)
;;
app:routes)
args+=(
':application:_sf_apps'
':"route name":'
)
;;
configure:author)
_message 'project author'
;;
configure:database)
_message 'database dsn'
;;
generate:app)
_message 'new application name'
;;
generate:module)
args+=(
':application:_sf_apps'
':"new module name":'
)
;;
generate:project)
_message 'new project name'
;;
generate:task)
_message 'new task name'
;;
i18n:extract)
args+=(
':application:_sf_apps'
':"target culture":'
)
;;
i18n:find)
args+=(
':application:_sf_apps'
)
;;
log:rotate)
args+=(
':application:_sf_apps'
':environment:_sf_environments'
)
;;
plugin:add-channel)
_message 'channel name'
;;
plugin:install)
_message 'plugin name'
;;
plugin:publish-assets)
args+=(
':plugin:_sf_plugins'
)
;;
plugin:uninstall)
_message 'plugin name'
;;
plugin:upgrade)
_message 'plugin name'
;;
project:deploy)
_message 'server name'
;;
project:disable|project:enable)
args+=(
':environment:_sf_environments'
'*:application:_sf_apps'
)
;;
project:optimize)
args+=(
':application:_sf_apps'
':environment:_sf_environments'
)
;;
propel:data-dump|doctrine:data-dump)
_message 'target filename'
;;
propel:data-load|doctrine:data-load)
args+=(
'*:file:_files'
)
;;
propel:generate-admin)
args+=(
':application:_sf_apps'
':model:_sf_models'
)
;;
propel:generate-module|propel:init-admin)
args+=(
':application:_sf_apps'
':module:_sf_modules_candidate'
':model:_sf_models'
)
;;
propel:generate-module-for-route|doctrine:generate-module-for-route)
args+=(
':application:_sf_apps'
':"route name":'
)
;;
doctrine:create-model-tables|doctrine:delete-model-files)
args+=(
'*:model:_sf_doctrine_models'
)
;;
doctrine:generate-admin)
args+=(
':application:_sf_apps'
'*:model:_sf_doctrine_models'
)
;;
doctrine:generate-module)
args+=(
':application:_sf_apps'
':module:_sf_doctrine_modules_candidate'
':model:_sf_doctrine_models'
)
;;
test:coverage)
args+=(
'*:file:_files'
)
;;
test:functional)
args+=(
':application:_sf_apps'
'*:test:_sf_functionaltests'
)
;;
test:unit)
args+=(
'*:test:_sf_unittests'
)
;;
esac
_arguments "$args[@]" && ret=0
return
;;
esac
return ret
}
_symfony10 () {
local curcontext="$curcontext" state line expl ret=1
_arguments -C \
'(-T --tasks)'{-T,--tasks}'[list of the symfony tasks]' \
'(-V --version)'{-V,--version}'[version]' \
'1: :->tasks' \
'*:: :->args' && ret=0
case $state in
tasks)
_sf10_tasks
;;
args)
local task args
task=$words[1]
args=()
case $task in
init-project)
_message 'new project name'
;;
init-app)
_message 'application name'
;;
init-module)
args+=(
':application:_sf_apps'
)
;;
init-batch)
args+=(
':skeleton name:compadd default rotate'
':"script name":'
':application:_sf_apps'
)
;;
init-controller)
args+=(
':application:_sf_apps'
':environment:_sf_environments'
':"script name":'
':"debug?":compadd true false'
)
;;
log-rotate)
args+=(
':application:_sf_apps'
':environment:_sf_environments'
)
;;
propel-load-data|propel-build-all-load)
args+=(
':application:_sf_apps'
':environment:_sf_environments'
':fixtures:_sf_fixtures'
)
;;
clear-cache|cc)
args+=(
':application:_sf_apps'
':what:compadd template config'
)
;;
sync)
args+=(
':environment:_sf_environments'
':"real run?":compadd go'
)
;;
propel-init-crud|propel*-init-admin|propel-generate-crud)
args+=(
':application:_sf_apps'
':module:_sf_modules_candidate'
':model:_sf_models'
)
;;
doctrine-init-admin|doctrine-generate-crud)
args+=(
':application:_sf_apps'
':module:_sf_doctrine_modules_candidate'
':model:_sf_doctrine_models'
)
;;
test-unit)
args+=(
':test:_sf_unittests'
)
;;
test-functional)
args+=(
':application:_sf_apps'
':test:_sf_functionaltests'
)
;;
esac
_arguments "$args[@]" && ret=0
return
;;
esac
return ret
}
_sf_tasks () {
local tmp ns line cache_task
cache_task=$(_get_sf_cache_var task)
(( ${(P)+cache_task} == 0 )) && {
tmp=(
${${${(f)${"$($service -T)"##*Available tasks:}}##[[:blank:]][[:blank:]]}%%[[:blank:]]*}
)
eval "$cache_task=()"
ns=''
for line in $tmp; do
if [ $line[1] = ":" ] ; then
eval "$cache_task+=( ${ns}${line#:} )"
else
ns="${line}:"
fi
done
}
_wanted symfony-task expl 'Symfony task' compadd -a $cache_task
}
_sf10_tasks () {
local sf_tasks
sf_tasks=(
${${${(f)${"$($service -T)"#available pake tasks:}%%task aliases:*}#[[:blank:]][[:blank:]]}/[[:blank:]]*>[[:blank:]]/:}
)
_describe -t symfony-tasks 'Symfony task' sf_tasks
}
_sf_apps () {
_wanted application expl 'application' compadd \
${$(echo apps/*):t}
}
_sf_environments () {
local app
app=$([ -f apps/"$words[2]"/config/settings.yml ] && echo $words[2] || echo frontend)
if [ -r apps/$app/config/settings.yml ] ; then
_wanted environment expl 'environment' compadd \
${${${(M)${(@f)"$(<apps/$app/config/settings.yml)"}:#[[:alpha:]]*}%%:*}:#all}
fi
}
_sf_plugins () {
_wanted application expl 'plugin' compadd \
${$(echo plugins/*):t}
}
_sf_models () {
_wanted application expl 'model' compadd \
$(_get_sfmodels)
}
_sf_doctrine_models () {
_wanted model expl 'model' compadd \
$(_get_sf_doctrine_models)
}
_sf_modules_candidate () {
_wanted module expl 'module' compadd \
${$(_get_sfmodels):l}
}
_sf_doctrine_modules_candidate () {
_wanted module expl 'module' compadd \
${$(_get_sf_doctrine_models):l}
}
_sf_unittests () {
_wanted test expl 'test' compadd \
${${${$(echo test/unit/**/*Test.php):r}#test/unit/}%Test}
}
_sf_functionaltests () {
_wanted test expl 'test' compadd \
${${$(echo test/functional/$words[2]/*ActionsTest.php):t:r}%Test}
}
_sf_fixtures () {
_files -W $(pwd)/data
}
_get_sfmodels () {
echo ${${$(echo lib/model/*Peer.php):t:r}%Peer}
}
_get_sf_doctrine_models () {
echo ${${$(echo lib/model/doctrine/*Table.class.php):t:r:r}%Table}
}
_get_sf_cache_var () {
echo ${$(echo "_sf_cache_${(j:_:)@}$(pwd)")//[^[:alnum:]]/_}
}
_symfony "$@"
# 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

@ -1,35 +0,0 @@
#compdef tarsnap
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for the tarsnap command
# (http://www.tarsnap.com/man.html).
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Daniel Teunis <daniel@teunis.cc>
#
_tarsnap(){
local -a commands
commands=(
'--fsck:Perform some integrity checks on the archives stored'
'--fsck-prune:Perform integrity checks and prune broken data'
'--list-archives:Print the names of archives stored'
'--nuke:Delete all of the archives stored'
'--print-stats:Print global statistics concerning the archives stored'
'-c:Create an archive containing the specified items and name'
'-d:Delete the specified archive'
'-r:Read the specified archive, convert it to a tar stream, and write it to stdout'
'-t:List archive contents to stdout'
'-x:Extract to disk from the archive'
)
if (( CURRENT == 2 )); then
_describe -t commands 'commands' commands
fi
return 0
}

View File

@ -1,164 +0,0 @@
#compdef veewee
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for veewee 0.3.7 (https://github.com/jedi4ever/veewee)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Marius Bergmann (https://github.com/mbrgm)
#
# ------------------------------------------------------------------------------
typeset curcontext state line cmds ret
curcontext="$curcontext"
ret=1
_arguments -C \
'--debug' \
'--workdir=[Change the working directory (the folder containing the definitions folder).]:directory:_files -/' \
'1: :->cmds' \
'2: :->providers' \
'*: :->args' && ret=0
local -a provider_cmds; provider_cmds=(
'build:Build box'
'copy:Copy a file to the VM'
'define:Define a new basebox starting from a template'
'destroy:Destroys the virtualmachine that was built'
'halt:Activates a shutdown the virtualmachine'
'help:Describe subcommands or one specific subcommand'
'list:Lists all defined boxes'
'ostypes:List the available Operating System types'
'sendkeys:Sends the key sequence (comma separated) to the box. E.g for testing the :boot_cmd_sequence'
'ssh:SSH to box'
'templates:List the currently available templates'
'undefine:Removes the definition of a basebox'
'up:Starts a Box'
'validate:Validates a box against vmfusion compliancy rules'
'winrm:Execute command via winrm'
)
case $state in
cmds)
local -a cmds; cmds=(
'fusion:Subcommand for Vmware fusion'
'help:Describe available commands or one specific command'
'kvm:Subcommand for KVM'
'parallels:Subcommand for Parallels'
'vbox:Subcommand for VirtualBox'
'version:Prints the Veewee version information'
)
_describe -t commands 'veewee command' cmds && ret=0
;;
providers)
case $line[1] in
(help)
local -a cmds; cmds=(
'fusion'
'help'
'kvm'
'parallels'
'vbox'
'version'
)
_values -S , 'commands' $cmds && ret=0
;;
(fusion)
provider_cmds+='add_share:Adds a share to the guest'
provider_cmds+='export:Exports the basebox to the vagrant format'
_describe -t commands 'veewee fusion command' provider_cmds && ret=0
;;
(kvm)
provider_cmds+='export:Exports the basebox to the vagrant format'
_describe -t commands 'veewee kvm command' provider_cmds && ret=0
;;
(parallels)
_describe -t commands 'veewee parallels command' provider_cmds && ret=0
;;
(vbox)
provider_cmds+='export:Exports the basebox to the vagrant format'
provider_cmds+='screenshot:Takes a screenshot of the box'
_describe -t commands 'veewee vbox command' provider_cmds && ret=0
;;
esac;
;;
args)
case $line[2] in
(add_share|build|copy|destroy|export|halt|screenshot|sendkeys|ssh|undefine|up|validate|winrm)
if [ ${#line[@]} -eq 3 ]; then
boxes=( ${(f)"$(ls -1 ./definitions)"} )
_values -S , 'boxes' $boxes && ret=0
fi
;;
(define)
if [ ${#line[@]} -eq 4 ]; then
templates=( ${(f)"$(_call_program templates veewee $line[1] templates | awk '/^veewee.+define/{sub(/^.+>[:\47] [:\47]/, "");sub(/[:\47].+$/, "");print}')"} )
_values -S , 'templates' $templates && ret=0
fi
;;
(help)
local -a cmds; cmds=(
'build'
'copy'
'define'
'destroy'
'halt'
'help'
'list'
'ostypes'
'sendkeys'
'ssh'
'templates'
'undefine'
'up'
'validate'
'winrm'
)
if [ $line[1] = "fusion" ]; then
cmds+='add_share'
cmds+='export'
elif [ $line[1] = "kvm" ]; then
cmds+='export'
elif [ $line[1] = "vbox" ]; then
cmds+='export'
cmds+='screenshot'
fi
_values -S , 'commands' $cmds && ret=0
;;
esac;
case $line[2] in
(add_share)
if [ ${#line[@]} -eq 5 ]; then
_arguments "*::filename:_files"
fi
;;
(copy)
if [ ${#line[@]} -eq 4 ]; then
_arguments "*::filename:_files"
fi
;;
(screenshot)
if [ ${#line[@]} -eq 4 ]; then
_arguments "*::filename:_files"
fi
;;
esac;
;;
esac;