Compare commits
No commits in common. "59916543485fd79830d929394e6789c0c0aadc10" and "8ddc4416dd4d2804668834bb42067feaddb9bb5a" have entirely different histories.
5991654348
...
8ddc4416dd
1038
src/_concourse
1038
src/_concourse
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,72 @@
|
||||||
|
#compdef console
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2011 Github zsh-users - https://github.com/zsh-users
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of the zsh-users nor the
|
||||||
|
# names of its contributors may be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for symfony console (https://github.com/symfony/Console).
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * loranger (https://github.com/loranger)
|
||||||
|
# * Yohan Tamb<6D>«² (https://github.com/Cronos87)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_console_find_console() {
|
||||||
|
echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console' -type f | head -n 1)"
|
||||||
|
}
|
||||||
|
|
||||||
|
_console_get_command_list() {
|
||||||
|
IFS=" "
|
||||||
|
`_console_find_console` --no-ansi | \
|
||||||
|
sed "1,/Available commands/d" | \
|
||||||
|
awk '/ [a-z]+/ { print $0 }' | \
|
||||||
|
sed -E 's/^[ ]+//g' | \
|
||||||
|
sed -E 's/[:]+/\\:/g' | \
|
||||||
|
sed -E 's/[ ]{2,}/\:/g'
|
||||||
|
}
|
||||||
|
|
||||||
|
_console() {
|
||||||
|
local -a commands
|
||||||
|
IFS=$'\n'
|
||||||
|
commands=(`_console_get_command_list`)
|
||||||
|
_describe 'commands' commands
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _console php console
|
||||||
|
compdef _console console
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
@ -1073,7 +1073,6 @@ _flutter_pub_token() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'(- *)'{-h,--help}'[Print this usage information]' \
|
'(- *)'{-h,--help}'[Print this usage information]' \
|
||||||
&& ret=0
|
&& ret=0
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# Description
|
# Description
|
||||||
# -----------
|
# -----------
|
||||||
#
|
#
|
||||||
# Completion script for git-pulls 0.3.1 (https://github.com/schacon/git-pulls).
|
# Completion script for git-pulls 0.3.1 (https://git-pulls.com/schacon/git-pulls).
|
||||||
#
|
#
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Authors
|
# Authors
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,94 @@
|
||||||
|
#compdef google
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2016 Github zsh-users - https://github.com/zsh-users
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of the zsh-users nor the
|
||||||
|
# names of its contributors may be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for googlecl (https://code.google.com/p/googlecl/)
|
||||||
|
#
|
||||||
|
# Source: https://raw.github.com/dadrc/zsh-cfg/master/completions/_google
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * dadrc (https://github.com/dadrc)
|
||||||
|
# * Ben O'Hara (https://github.com/benohara)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_google() {
|
||||||
|
# init variables
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
# init state
|
||||||
|
_arguments \
|
||||||
|
'1: :->service'\
|
||||||
|
'2: :->task'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
service)
|
||||||
|
_arguments '1:service:(picasa blogger youtube docs contacts calendar finance)'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case $words[2] in
|
||||||
|
picasa)
|
||||||
|
compadd "$@" get create list list-albums tag post delete
|
||||||
|
;;
|
||||||
|
blogger)
|
||||||
|
compadd "$@" post tag list delete
|
||||||
|
;;
|
||||||
|
youtube)
|
||||||
|
compadd "$@" post tag list delete
|
||||||
|
;;
|
||||||
|
docs)
|
||||||
|
compadd "$@" edit delete list upload get
|
||||||
|
;;
|
||||||
|
contacts)
|
||||||
|
compadd "$@" list list-groups add add-groups delete-groups delete
|
||||||
|
;;
|
||||||
|
calendar)
|
||||||
|
compadd "$@" add list today delete
|
||||||
|
;;
|
||||||
|
finance)
|
||||||
|
compadd "$@" list-txn delete-pos create-pos delete-txn create create-txn list list-pos delete
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_google "$@"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
#
|
#
|
||||||
# Completion script for JMeter (https://jmeter.apache.org/).
|
# Completion script for JMeter (https://jmeter.apache.org/).
|
||||||
#
|
#
|
||||||
|
# Status: incomplete
|
||||||
|
#
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Authors
|
# Authors
|
||||||
# -------
|
# -------
|
||||||
|
|
@ -13,6 +15,7 @@
|
||||||
#
|
#
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
_arguments \
|
_arguments \
|
||||||
'(- 1 *)--?[print command line options and exit]' \
|
'(- 1 *)--?[print command line options and exit]' \
|
||||||
'(- 1 *)'{-h,--help}'[print usage information and exit]' \
|
'(- 1 *)'{-h,--help}'[print usage information and exit]' \
|
||||||
|
|
@ -26,6 +29,7 @@ _arguments \
|
||||||
{-j,--jmeterlogfile}'[jmeter run file]: :_files -g "*.log"' \
|
{-j,--jmeterlogfile}'[jmeter run file]: :_files -g "*.log"' \
|
||||||
{-n,--nongui}'[run JMeter in nongui mode]' \
|
{-n,--nongui}'[run JMeter in nongui mode]' \
|
||||||
{-s,--server}'[run the JMeter server]' \
|
{-s,--server}'[run the JMeter server]' \
|
||||||
|
{-E,--proxyScheme}'[set a proxy scheme to use for the proxy server]:scheme' \
|
||||||
{-H,--proxyHost}'[set a proxy server for JMeter to use]: :_hosts' \
|
{-H,--proxyHost}'[set a proxy server for JMeter to use]: :_hosts' \
|
||||||
{-P,--proxyPort}'[set proxy server port for JMeter to use]:number' \
|
{-P,--proxyPort}'[set proxy server port for JMeter to use]:number' \
|
||||||
{-N,--nonProxyHosts}'[set non proxy host list]:host' \
|
{-N,--nonProxyHosts}'[set non proxy host list]:host' \
|
||||||
|
|
@ -41,7 +45,7 @@ _arguments \
|
||||||
{-R,--remotestart}'[start these remote servers (overrides remote_hosts)]:remote servers list' \
|
{-R,--remotestart}'[start these remote servers (overrides remote_hosts)]:remote servers list' \
|
||||||
{-d,--homedir}'[the JMeter home directory to use]: :_files -/' \
|
{-d,--homedir}'[the JMeter home directory to use]: :_files -/' \
|
||||||
{-X,--remoteexit}'[exit the remote servers at end of test (non-GUI)]' \
|
{-X,--remoteexit}'[exit the remote servers at end of test (non-GUI)]' \
|
||||||
{-g,--reportonly}'[generate report dashboard only, from a test results file]: :_files' \
|
{-g,--removeonly}'[generate report dashboard only, from a test results file]: :_files' \
|
||||||
{-e,--reportatendofloadtests}'[generate report dashboard after load test]' \
|
{-e,--reportatendofloadtests}'[generate report dashboard after load test]' \
|
||||||
{-o,--reportoutputfolder}'[output folder for report dashboard]: :_files -/'
|
{-o,--reportoutputfolder}'[output folder for report dashboard]: :_files -/'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,324 @@
|
||||||
|
#compdef knife
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2009-2015 Robby Russell and contributors (see
|
||||||
|
# https://github.com/ohmyzsh/ohmyzsh/graphs/contributors)
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
# THE SOFTWARE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for Chef's knife (https://www.chef.io/).
|
||||||
|
#
|
||||||
|
# Source: https://github.com/ohmyzsh/ohmyzsh/blob/22fed4f/plugins/knife/_knife
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * Frank Louwers (https://github.com/franklouwers)
|
||||||
|
# * Mark Cornick (https://github.com/markcornick)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# You can override the path to knife.rb and your cookbooks by setting
|
||||||
|
# KNIFE_CONF_PATH=/path/to/my/.chef/knife.rb
|
||||||
|
# KNIFE_COOKBOOK_PATH=/path/to/my/chef/cookbooks
|
||||||
|
# If you want your local cookbooks path to be calculated relative to where you are then
|
||||||
|
# set the below option
|
||||||
|
# KNIFE_RELATIVE_PATH=true
|
||||||
|
# Read around where these are used for more detail.
|
||||||
|
|
||||||
|
# knife has a very special syntax, some example calls are:
|
||||||
|
# knife status
|
||||||
|
# knife cookbook list
|
||||||
|
# knife role show ROLENAME
|
||||||
|
# knife data bag show DATABAGNAME
|
||||||
|
# knife role show ROLENAME --attribute ATTRIBUTENAME
|
||||||
|
# knife cookbook show COOKBOOKNAME COOKBOOKVERSION recipes
|
||||||
|
|
||||||
|
# The -Q switch in compadd allow for completions of things like "data bag" without having to go through two rounds of completion and avoids zsh inserting a \ for escaping spaces
|
||||||
|
_knife() {
|
||||||
|
# These flags should be available everywhere according to man knife
|
||||||
|
local -a knife_general_flags; knife_general_flags=(--help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes)
|
||||||
|
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
local -a cloudproviders; cloudproviders=(bluebox ec2 rackspace slicehost terremark)
|
||||||
|
_arguments \
|
||||||
|
'1: :->knifecmd' \
|
||||||
|
'2: :->knifesubcmd' \
|
||||||
|
'3: :->knifesubcmd2' \
|
||||||
|
'4: :->knifesubcmd3' \
|
||||||
|
'5: :->knifesubcmd4' \
|
||||||
|
'6: :->knifesubcmd5'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
knifecmd)
|
||||||
|
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment user index node recipe role search solo ssh status upload vault windows "$cloudproviders[@]"
|
||||||
|
;;
|
||||||
|
knifesubcmd)
|
||||||
|
case $words[2] in
|
||||||
|
bluebox|ec2|rackspace|slicehost|terremark)
|
||||||
|
compadd "$@" server images
|
||||||
|
;;
|
||||||
|
client)
|
||||||
|
compadd -Q "$@" "bulk delete" list create show delete edit reregister
|
||||||
|
;;
|
||||||
|
configure)
|
||||||
|
compadd "$@" client
|
||||||
|
;;
|
||||||
|
cookbook)
|
||||||
|
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
|
||||||
|
;;
|
||||||
|
diff)
|
||||||
|
_arguments '*:file or directory:_files -g "*"'
|
||||||
|
;;
|
||||||
|
environment)
|
||||||
|
compadd -Q "$@" list create delete edit show "from file"
|
||||||
|
;;
|
||||||
|
user)
|
||||||
|
compadd -Q "$@" create delete edit list reregister show
|
||||||
|
;;
|
||||||
|
node)
|
||||||
|
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
|
||||||
|
;;
|
||||||
|
recipe)
|
||||||
|
compadd "$@" list
|
||||||
|
;;
|
||||||
|
role)
|
||||||
|
compadd -Q "$@" "bulk delete" create delete edit "from file" list show
|
||||||
|
;;
|
||||||
|
solo)
|
||||||
|
compadd "$@" bootstrap clean cook init prepare
|
||||||
|
;;
|
||||||
|
upload)
|
||||||
|
_arguments '*:file or directory:_files -g "*"'
|
||||||
|
;;
|
||||||
|
vault)
|
||||||
|
compadd -Q "$@" create decrypt delete edit remove "rotate all keys" "rotate keys" show update
|
||||||
|
;;
|
||||||
|
windows)
|
||||||
|
compadd "$@" bootstrap
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '2:Subsubcommands:($(_knife_options1))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
knifesubcmd2)
|
||||||
|
case $words[3] in
|
||||||
|
server)
|
||||||
|
compadd "$@" list create delete
|
||||||
|
;;
|
||||||
|
images)
|
||||||
|
compadd "$@" list
|
||||||
|
;;
|
||||||
|
site)
|
||||||
|
compadd "$@" vendor show share search download list unshare
|
||||||
|
;;
|
||||||
|
show|delete|edit|update)
|
||||||
|
_arguments '3:Subsubcommands:($(_knife_list_remote "$words[2]"))'
|
||||||
|
;;
|
||||||
|
upload|test)
|
||||||
|
_arguments '3:Subsubcommands:($(_call_function - "_knife_list_local_$words[2]s") --all)'
|
||||||
|
;;
|
||||||
|
list)
|
||||||
|
compadd -a "$@" knife_general_flags
|
||||||
|
;;
|
||||||
|
bag)
|
||||||
|
compadd -Q "$@" show edit list "from file" create delete
|
||||||
|
;;
|
||||||
|
bootstrap|clean|cook|prepare)
|
||||||
|
compadd "$@" nodes/*.json(N:t:r)
|
||||||
|
;;
|
||||||
|
init)
|
||||||
|
compadd "$@" ./*(/N:t)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '3:Subsubcommands:($(_knife_options2))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
knifesubcmd3)
|
||||||
|
case "$words[3]" in
|
||||||
|
show)
|
||||||
|
case "$words[2]" in
|
||||||
|
cookbook)
|
||||||
|
versioncomp=1
|
||||||
|
_arguments '4:Cookbookversions:($(_knife_cookbook_versions) latest)'
|
||||||
|
;;
|
||||||
|
node|client|role)
|
||||||
|
compadd "$@" --attribute
|
||||||
|
;;
|
||||||
|
vault)
|
||||||
|
_arguments '4:Keys:($(_knife_list_remote "$words[2]" "$words[4]"))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
case "$words[2]" in
|
||||||
|
vault)
|
||||||
|
_arguments '4:Keys:($(_knife_list_remote "$words[2]" "$words[4]"))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$words[4]" in
|
||||||
|
show|edit)
|
||||||
|
_arguments '4:Subsubsubcommands:($(_knife_list_remote "$words[2]" "$words[3]"))'
|
||||||
|
;;
|
||||||
|
file)
|
||||||
|
case "$words[2]" in
|
||||||
|
environment)
|
||||||
|
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_knife_root)/environments"'
|
||||||
|
;;
|
||||||
|
node)
|
||||||
|
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_knife_root)/nodes"'
|
||||||
|
;;
|
||||||
|
role)
|
||||||
|
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_knife_root)/roles"'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
list)
|
||||||
|
compadd -a "$@" knife_general_flags
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
knifesubcmd4)
|
||||||
|
if ((versioncomp > 0)); then
|
||||||
|
compadd "$@" attributes definitions files libraries providers recipes resources templates
|
||||||
|
else
|
||||||
|
case "$words[5]" in
|
||||||
|
file)
|
||||||
|
_arguments '*:directory:_path_files -/ -W "$(_knife_root)/data_bags" -qS \ '
|
||||||
|
;;
|
||||||
|
*) _arguments '*:Subsubcommands:($(_knife_options2))' ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
knifesubcmd5)
|
||||||
|
case "$words[5]" in
|
||||||
|
file)
|
||||||
|
_arguments '*:files:_path_files -g "*.json" -W "$(_knife_root)/data_bags/$words[6]"'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Helper functions to provide the argument completion for several depths of commands
|
||||||
|
_knife_options1() {
|
||||||
|
local line
|
||||||
|
for line in $(_call_program commands knife "$words[2]" --help | grep -v "^knife"); do
|
||||||
|
echo $line | grep "\-\-"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_knife_options2() {
|
||||||
|
local line
|
||||||
|
for line in $(_call_program commands knife "$words[2]" "$words[3]" --help | grep -v "^knife"); do
|
||||||
|
echo $line | grep "\-\-"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_knife_options3() {
|
||||||
|
local line
|
||||||
|
for line in $(_call_program commands knife "$words[2]" "$words[3]" "$words[4]" --help | grep -v "^knife"); do
|
||||||
|
echo $line | grep "\-\-"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# get a list of objects of type x on the server
|
||||||
|
_knife_list_remote() {
|
||||||
|
case "$*" in
|
||||||
|
role|client|node|cookbook|"cookbook site"|"data bag"|environment|user|vault)
|
||||||
|
_call_program commands knife "$@" list --format json \
|
||||||
|
| grep \" \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| awk -F"," '{print $1}' \
|
||||||
|
| awk -F"\"" '{print $2}'
|
||||||
|
;;
|
||||||
|
"vault "*)
|
||||||
|
_call_program commands knife vault show "$2" --format json \
|
||||||
|
| grep \" \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| awk -F"," '{print $1}' \
|
||||||
|
| awk -F"\"" '{print $2}'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
|
||||||
|
_knife_list_local_cookbooks() {
|
||||||
|
if [ $KNIFE_RELATIVE_PATH ]; then
|
||||||
|
local cookbook_path="$(_knife_root)/cookbooks"
|
||||||
|
else
|
||||||
|
local knife_rb="${KNIFE_CONF_PATH:-${HOME}/.chef/knife.rb}"
|
||||||
|
if [ -f ./.chef/knife.rb ]; then
|
||||||
|
knife_rb="./.chef/knife.rb"
|
||||||
|
fi
|
||||||
|
local cookbook_path="${KNIFE_COOKBOOK_PATH:-$(grep -s cookbook_path "$knife_rb" | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' | cut -d '"' -f2)}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local i
|
||||||
|
for i in $cookbook_path; do
|
||||||
|
ls $i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# This function extracts the available cookbook versions on the chef server
|
||||||
|
_knife_cookbook_versions() {
|
||||||
|
_call_program commands knife cookbook show "$words[4]" \
|
||||||
|
| grep -v "$words[4]" \
|
||||||
|
| grep -v -E '\]|\[|\{|\}' \
|
||||||
|
| sed 's/ //g' \
|
||||||
|
| sed 's/"//g'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Searches up from current directory to find the closest folder that has a .chef folder
|
||||||
|
# Useful for the knife upload/from file commands
|
||||||
|
_knife_root() {
|
||||||
|
local directory="$PWD"
|
||||||
|
while [ $directory != '/' ]; do
|
||||||
|
test -e "$directory/.chef" && echo "$directory" && return
|
||||||
|
directory="${directory:h}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_knife "$@"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
@ -0,0 +1,590 @@
|
||||||
|
#compdef psql pg_dump pg_dumpall pg_restore createdb dropdb vacuumdb createuser dropuser initdb
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2016 Github zsh-users - https://github.com/zsh-users, Dominic Mitchell, Johann 'Myrkraverk' Oskarsson, Daniel Serodio, J Smith
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of the zsh-users nor the
|
||||||
|
# names of its contributors may be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for PostgreSQL utils (https://www.postgresql.org/).
|
||||||
|
#
|
||||||
|
# Source: https://www.zsh.org/mla/users/2004/msg01006.html
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * Dominic Mitchell <dom+zsh@happygiraffe.net>
|
||||||
|
#
|
||||||
|
# * Johann 'Myrkraverk' Oskarsson <johann@2ndquadrant.com>
|
||||||
|
#
|
||||||
|
# * Daniel Serodio <dserodio@gmail.com> pg_dumpall completion
|
||||||
|
#
|
||||||
|
# * J Smith <dark.panda@gmail.com> various completion additions
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
_pgsql_get_identity () {
|
||||||
|
_pgsql_user=${(v)opt_args[(i)-U|--username]}
|
||||||
|
_pgsql_port=${(v)opt_args[(i)-p|--port]}
|
||||||
|
_pgsql_host=${(v)opt_args[(i)-h|--host]}
|
||||||
|
|
||||||
|
_pgsql_params=(
|
||||||
|
${_pgsql_user:+"--username=$_pgsql_user"}
|
||||||
|
${_pgsql_port:+"--port=$_pgsql_port"}
|
||||||
|
${_pgsql_host:+"--host=$_pgsql_host"}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postgres Allows specifying the path to the directory containing the
|
||||||
|
# socket as well as a hostname.
|
||||||
|
_pgsql_host_or_dir() {
|
||||||
|
_alternative \
|
||||||
|
'hosts:host:_hosts' \
|
||||||
|
'directories:directory:_directories'
|
||||||
|
}
|
||||||
|
|
||||||
|
# This creates a port completion list based on socket files on the
|
||||||
|
# local computer. Be default, Postgres puts them in /tmp/ but Debian
|
||||||
|
# changed that to /var/run/postgresql/ in their packages.
|
||||||
|
_pgsql_ports() {
|
||||||
|
compadd "$@" - /tmp/.s.PGSQL.<->(N:e) /var/run/postgresql/.s.PGSQL.<->(N:e)
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_users () {
|
||||||
|
local _pgsql_user _pgsql_port _pgsql_host _pgsql_params
|
||||||
|
local _pgsql_user_sql
|
||||||
|
_pgsql_get_identity
|
||||||
|
|
||||||
|
# We use _pgsql_port and _pgsql_host directly here instead of
|
||||||
|
# _pgsql_params so as to not pick up a partially completed
|
||||||
|
# username.
|
||||||
|
_pgsql_params=(
|
||||||
|
${_pgsql_port:+"--port=$_pgsql_port"}
|
||||||
|
${_pgsql_host:+"--host=$_pgsql_host"}
|
||||||
|
)
|
||||||
|
|
||||||
|
_pgsql_user_sql='select r.rolname from pg_catalog.pg_roles r where r.rolcanlogin = true'
|
||||||
|
|
||||||
|
compadd "$@" - $( psql $_pgsql_params[@] -XAqt -c $_pgsql_user_sql template1 2>/dev/null )
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_tables () {
|
||||||
|
local _pgsql_user _pgsql_port _pgsql_host _pgsql_params
|
||||||
|
_pgsql_get_identity
|
||||||
|
|
||||||
|
# Need to pull out the database name from the existing arguments.
|
||||||
|
# This is going to vary between commands. Thankfully, it's only
|
||||||
|
# used by pg_dump, which always has the dbname in arg1. If it's
|
||||||
|
# not present it defaults to ${PGDATABASE:-$LOGNAME}, which
|
||||||
|
# matches (I think) the PostgreSQL behaviour.
|
||||||
|
|
||||||
|
local db
|
||||||
|
db=${line[1]:-${PGDATABASE:-$LOGNAME}}
|
||||||
|
|
||||||
|
## Instead of parsing the output of the psql \ commands, we look
|
||||||
|
## up the tables ourselves. The following query has been tested
|
||||||
|
## with Postgres 8.2 - 9.2.
|
||||||
|
|
||||||
|
local _pgsql_table_sql
|
||||||
|
_pgsql_table_sql="select n.nspname || '.' || c.relname \
|
||||||
|
from pg_catalog.pg_class c \
|
||||||
|
left join pg_catalog.pg_namespace n on n.oid = c.relnamespace \
|
||||||
|
where c.relkind in ('r', '') \
|
||||||
|
and n.nspname <> 'pg_catalog' \
|
||||||
|
and n.nspname <> 'information_schema' \
|
||||||
|
and n.nspname !~ '^pg_toast' \
|
||||||
|
and pg_catalog.pg_table_is_visible( c.oid ) \
|
||||||
|
order by 1"
|
||||||
|
|
||||||
|
compadd "$@" - \
|
||||||
|
$( psql $_pgsql_params[@] -AXqt -c $_pgsql_table_sql $db 2>/dev/null )
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_schemas () {
|
||||||
|
local _pgsql_user _pgsql_port _pgsql_host _pgsql_params
|
||||||
|
_pgsql_get_identity
|
||||||
|
|
||||||
|
local db
|
||||||
|
db=${line[1]:-${PGDATABASE:-$LOGNAME}}
|
||||||
|
|
||||||
|
local _pgsql_schema_sql="select n.nspname \
|
||||||
|
from pg_catalog.pg_namespace n \
|
||||||
|
where n.nspname !~ '^pg_' \
|
||||||
|
and n.nspname <> 'information_schema' \
|
||||||
|
order by 1;"
|
||||||
|
|
||||||
|
compadd "$@" - \
|
||||||
|
$( psql $_pgsql_params[@] -AXqt -c $_pgsql_schema_sql $db 2>/dev/null )
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_databases () {
|
||||||
|
local _pgsql_user _pgsql_port _pgsql_host _pgsql_params
|
||||||
|
_pgsql_get_identity
|
||||||
|
|
||||||
|
local _pgsql_services _pgsql_service_files
|
||||||
|
_pgsql_service_files=(~/.pg_service.conf)
|
||||||
|
(( $+commands[pg_config] )) && _pgsql_service_files+=$(pg_config --sysconfdir)/pg_service.conf
|
||||||
|
|
||||||
|
_pgsql_services=$( grep -h '^\[.*\]' $_pgsql_service_files 2>/dev/null \
|
||||||
|
| sed -e 's/^\[/service=/' -e 's/\].*$//' )
|
||||||
|
|
||||||
|
local _pgsql_db_sql
|
||||||
|
_pgsql_db_sql="select d.datname from pg_catalog.pg_database d \
|
||||||
|
where d.datname <> 'template0'"
|
||||||
|
|
||||||
|
compadd "$@" - \
|
||||||
|
${(f)_pgsql_services} \
|
||||||
|
$( psql $_pgsql_params[@] -AXtq -c $_pgsql_db_sql template1 2>/dev/null )
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_encodings () {
|
||||||
|
local _pgsql_user
|
||||||
|
_pgsql_get_identity
|
||||||
|
|
||||||
|
local _pgsql_db_sql
|
||||||
|
_pgsql_db_sql="select pg_encoding_to_char(i) from generate_series(0,100) i;"
|
||||||
|
|
||||||
|
compadd "$@" - $( psql $_pgsql_params[@] -AXtq -c $_pgsql_db_sql template1 )
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
## The actual completion code for the commands
|
||||||
|
##
|
||||||
|
|
||||||
|
_psql () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s "-*" \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-c+,--command=}':execute SQL command:' \
|
||||||
|
{-d+,--dbname=}':database to connect to:_pgsql_databases' \
|
||||||
|
{-f+,--file=}':SQL file to read:_files' \
|
||||||
|
{-l,--list}'[list databases]' \
|
||||||
|
{-v+,--set=,--variable=}':set SQL variable:' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
{-X,--no-psqlrc}'[don'\''t read ~/.psqlrc]' \
|
||||||
|
{-1,--single-transaction}'[restore as a single transaction]' \
|
||||||
|
{-\?,--help=}':display help:' \
|
||||||
|
\
|
||||||
|
{-a,--echo-all}'[print commands read]' \
|
||||||
|
{-b,--echo-errors}'[echo failed commands]' \
|
||||||
|
{-e,--echo-queries}'[display queries submitted]' \
|
||||||
|
{-E,--echo-hidden}'[display hidden queries]' \
|
||||||
|
{-L,--log-file=}'[send session log to file]' \
|
||||||
|
{-n,--no-readline}'[disable enhanced command line editing (readline)]' \
|
||||||
|
{-o+,--output=}':query output:_files' \
|
||||||
|
{-q,--quiet}'[non verbose mode]' \
|
||||||
|
{-s,--single-step}'[prompt before each query]' \
|
||||||
|
{-S,--single-line}'[newline sends query]' \
|
||||||
|
\
|
||||||
|
{-A,--no-align}'[unaligned output mode]' \
|
||||||
|
--csv'[CSV (Comma-Separated Values) table output mode]' \
|
||||||
|
{-F+,--field-separator=}':field separator char:' \
|
||||||
|
{-H,--html}'[HTML output]' \
|
||||||
|
{-P+,--pset=}':set psql variable:' \
|
||||||
|
{-R+,--record-separator=}':record separator char:' \
|
||||||
|
{-t,--tuples-only}'[don'\''t display header/footer]' \
|
||||||
|
{-T+,--table-attr=}':HTML table options:' \
|
||||||
|
{-x,--expanded}'[one column per line]' \
|
||||||
|
{-z,--field-separator-zero}'[set field separator for unaligned output to zero byte]' \
|
||||||
|
{-0,--record-separator-zero}'[set record separator for unaligned output to zero byte]' \
|
||||||
|
-u'[prompt for username/password]' \
|
||||||
|
':PostgreSQL database:_pgsql_databases' \
|
||||||
|
':PostgreSQL user:_pgsql_users'
|
||||||
|
}
|
||||||
|
|
||||||
|
_pg_dump () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-f+,--file=}':output file:_files' \
|
||||||
|
{-F+,--format=}':output format:_values "format" "p[plain text]" "t[tar]" "c[custom]"' \
|
||||||
|
{-j,--jobs=}'[use this many parallel jobs to dump]' \
|
||||||
|
{-v,--verbose}'[verbose mode]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
{-Z+,--compress=}':compression level:_values "level" 9 8 7 6 5 4 3 2 1 0' \
|
||||||
|
--lock-wait-timeout='[fail after waiting TIMEOUT for a table lock]' \
|
||||||
|
--no-sync'[do not wait for changes to be written safely to disk]' \
|
||||||
|
{-\?,--help}'[display help]' \
|
||||||
|
\
|
||||||
|
{-a,--data-only}'[dump only data]' \
|
||||||
|
{-b,--blobs}'[dump blobs as well]' \
|
||||||
|
{-B,--no-blobs}'[exclude large objects in dump]' \
|
||||||
|
{-c,--clean}'[include clean cmds in dump]' \
|
||||||
|
{-C,--create}'[include createdb cmds in dump]' \
|
||||||
|
{-e+,--extension=}'[dump the specified extension(s) only]' \
|
||||||
|
{-E+,--encoding=}':database encoding:_pgsql_encodings' \
|
||||||
|
{-n+,--schema=}':schema to dump:_pgsql_schemas' \
|
||||||
|
{-N+,--exclude-schema=}':schema to NOT dump:_pgsql_schemas' \
|
||||||
|
{-O,--no-owner}'[don'\''t recreate as same owner]' \
|
||||||
|
{-s,--schema-only}'[no data, only schema]' \
|
||||||
|
{-S+,--superuser=}':superuser name:_pgsql_users' \
|
||||||
|
{-t+,--table=}':table to dump:_pgsql_tables' \
|
||||||
|
{-T+,--exclude-table=}':table to NOT dump:_pgsql_tables' \
|
||||||
|
{-x,--no-{acl,privileges}}'[don'\''t dump ACLs]' \
|
||||||
|
--binary-upgrade'[for use by upgrade utilities only]' \
|
||||||
|
{-D,--{attribute,column}-inserts}'[use INSERT (cols) not COPY]' \
|
||||||
|
--disable-dollar-quoting'[disable dollar quoting, use SQL standard quoting]' \
|
||||||
|
--disable-triggers'[disable triggers during data-only restore]' \
|
||||||
|
--enable-row-security'[enable row security (dump only content user has access to)]' \
|
||||||
|
--exclude-table-data='[do NOT dump data for the named table(s)]' \
|
||||||
|
--if-exists'[use IF EXISTS when dropping objects]' \
|
||||||
|
--include-foreign-data='[include data of foreign servers]' \
|
||||||
|
--inserts'[dump data as INSERT commands, rather than COPY]' \
|
||||||
|
--load-via-partition-root'[load partitions via the root table]' \
|
||||||
|
--no-comments'[do not dump comments]' \
|
||||||
|
--no-publications'[do not dump publications]' \
|
||||||
|
--no-security-labels'[do not dump security label assignments]' \
|
||||||
|
--no-subscriptions'[do not dump subscriptions]' \
|
||||||
|
--no-synchronized-snapshots'[do not use synchronized snapshots in parallel jobs]' \
|
||||||
|
--no-tablespaces'[do not dump tablespace assignments]' \
|
||||||
|
--no-toast-compression'[do not dump TOAST compression methods]' \
|
||||||
|
--no-unlogged-table-data'[do not dump unlogged table data]' \
|
||||||
|
--on-conflict-do-nothing'[add ON CONFLICT DO NOTHING to INSERT commands]' \
|
||||||
|
--quote-all-identifiers'[quote all identifiers, even if not key words]' \
|
||||||
|
--rows-per-insert=['number of rows per INSERT'] \
|
||||||
|
--section=':dump named section:_values "section" pre-data data post-data' \
|
||||||
|
--serializable-deferrable'[wait until the dump can run without anomalies]' \
|
||||||
|
--snapshot='[use given snapshot for the dump]' \
|
||||||
|
--strict-names'[require table and/or schema include patterns to match at least one entity each]' \
|
||||||
|
--use-set-session-authorization'[use SET SESSION AUTHORIZATION commands instead of ALTER OWNER]' \
|
||||||
|
\
|
||||||
|
{-i,--ignore-version}'[ignore version mismatch]' \
|
||||||
|
{-o,--oids}'[dump objects identifiers for every table]' \
|
||||||
|
{-R,--no-reconnect}'[don'\''t output connect]' \
|
||||||
|
-X+':option:_values "option" use-set-session-authorization disable-triggers' \
|
||||||
|
':PostgreSQL database:_pgsql_databases'
|
||||||
|
}
|
||||||
|
|
||||||
|
_pg_restore () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-d+,--dbname=}':database to connect to:_pgsql_databases' \
|
||||||
|
{-f+,--file=}':output file:_files' \
|
||||||
|
{-F+,--format=}':output format:_values "format" "p[plain text]" "t[tar]" "c[custom]"' \
|
||||||
|
{-l,--list}'[list databases]' \
|
||||||
|
{-v,--verbose}'[verbose mode]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
{-\?,--help}'[display help]' \
|
||||||
|
\
|
||||||
|
{-a,--data-only}'[dump only data]' \
|
||||||
|
{-c,--clean}'[include clean (drop) cmds before recreating]' \
|
||||||
|
{-C,--create}'[include createdb cmds in dump]' \
|
||||||
|
{-e,--exit-on-error}'[exit on error, default is to continue]' \
|
||||||
|
{-I,--index=}':index name:' \
|
||||||
|
{-j,--jobs=}':use this many parallel jobs to restore:' \
|
||||||
|
{-L,--use-list=}':use table of contents from this file for selecting/ordering output:' \
|
||||||
|
{-n,--schema=}':restore only objects in this schema:' \
|
||||||
|
{-O,--no-owner}'[skip restoration of object ownership]' \
|
||||||
|
{-P,--function=}':restore named function:' \
|
||||||
|
{-s,--schema-only}'[restore only the schema, no data]' \
|
||||||
|
{-S,--superuser=}':superuser user name to use for disabling triggers:' \
|
||||||
|
{-t,--table=}':restore named table:' \
|
||||||
|
{-T,--trigger=}':restore named trigger:' \
|
||||||
|
{-x,--no-privileges}'[skip restoration of access privileges (grant/revoke)]' \
|
||||||
|
{-1,--single-transaction}'[restore as a single transaction]' \
|
||||||
|
--disable-triggers'[disable triggers during data-only restore]' \
|
||||||
|
--enable-row-security'[enable row security]' \
|
||||||
|
--if-exists'[use IF EXISTS when dropping objects]' \
|
||||||
|
--no-comments'[do not restore comments]' \
|
||||||
|
--no-data-for-failed-tables'[do not restore data of tables that could not be created]' \
|
||||||
|
--no-publications'[do not restore publications]' \
|
||||||
|
--no-security-labels'[do not restore security labels]' \
|
||||||
|
--no-subscriptions'[do not restore subscriptions]' \
|
||||||
|
--no-tablespaces'[do not restore tablespace assignments]' \
|
||||||
|
--section=':dump named section:_values "section" pre-data data post-data' \
|
||||||
|
--strict-names'[require table and/or schema include patterns to match at least one entity each]' \
|
||||||
|
--use-set-session-authorization'[use SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to set ownership]' \
|
||||||
|
\
|
||||||
|
{-b,--blobs}'[include large objects in dump]' \
|
||||||
|
{-B,--no-blobs}'[exclude large objects in dump]' \
|
||||||
|
\
|
||||||
|
"1: :_files"
|
||||||
|
}
|
||||||
|
|
||||||
|
_pg_dumpall () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-f+,--file=}':output file:_files' \
|
||||||
|
{-v,--verbose}'[verbose mode]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
--lock-wait-timeout='[fail after waiting TIMEOUT for a table lock]' \
|
||||||
|
{-\?,--help}'[display help]' \
|
||||||
|
\
|
||||||
|
{-a,--data-only}'[dump only data]' \
|
||||||
|
{-c,--clean}'[include clean (drop) cmds before recreating]' \
|
||||||
|
{-E,--encoding=}'[dump the data in encoding]' \
|
||||||
|
{-g,--globals-only}'[dump only global objects, no databases]' \
|
||||||
|
{-O,--no-owner}'[don'\''t recreate as same owner]' \
|
||||||
|
{-r,--roles-only}'[no databases or tablespaces, only roles]' \
|
||||||
|
{-s,--schema-only}'[no data, only schema]' \
|
||||||
|
{-S+,--superuser=}':superuser name:_pgsql_users' \
|
||||||
|
{-t,--tablespaces-only}'[no databases or roles, only tablespaces]' \
|
||||||
|
{-x,--no-privileges}'[don'\''t dump ACLs]' \
|
||||||
|
--binary-upgrade'[for use by upgrade utilities only]' \
|
||||||
|
--column-inserts'[use INSERT with column names not COPY]' \
|
||||||
|
--disable-dollar-quoting'[disable dollar quoting, use SQL standard quoting]' \
|
||||||
|
--disable-triggers'[disable triggers during data-only restore]' \
|
||||||
|
--exclude-database=':exclude databases:_pgsql_databases' \
|
||||||
|
--extra-float-digits='[override default setting for extra_float_digits]' \
|
||||||
|
--if-exists'[use IF EXISTS when dropping objects]' \
|
||||||
|
--inserts'[use INSERT not COPY]' \
|
||||||
|
--load-via-partition-root'[pload partitions via the root table]' \
|
||||||
|
--no-comments'[do not dump comments]' \
|
||||||
|
--no-publications'[do not dump publications]' \
|
||||||
|
--no-role-passwords'[do not dump passwords for roles]' \
|
||||||
|
--no-security-labels'[do not dump security label assignments]' \
|
||||||
|
--no-subscriptions'[do not dump subscriptions]' \
|
||||||
|
--no-sync'[do not wait for changes to be written safely to disk]' \
|
||||||
|
--no-tablespaces'[do not dump tablespace assignments]' \
|
||||||
|
--no-toast-compression'[do not dump TOAST compression methods]' \
|
||||||
|
--no-unlogged-table-data'[do not dump unlogged table data]' \
|
||||||
|
--on-conflict-do-nothing'[add ON CONFLICT DO NOTHING to INSERT commands]' \
|
||||||
|
--quote-all-identifiers'[quote all identifiers, even if not key words]' \
|
||||||
|
--rows-per-insert='[number of rows per INSERT]' \
|
||||||
|
--use-set-session-authorization'[use SET SESSION AUTHORIZATION cmds instead of ALTER OWNER]' \
|
||||||
|
{-o,--oids}'[dump objects identifiers for every table]' \
|
||||||
|
}
|
||||||
|
|
||||||
|
_createdb () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-D+,--tablespace=}'[default tablespace for the database]' \
|
||||||
|
{-e,--echo}'[display SQL queries]' \
|
||||||
|
{-E+,--encoding=}':database encoding:_pgsql_encodings' \
|
||||||
|
{-l+,--locale=}'[locale settings for the database]' \
|
||||||
|
--lc-collate='[LC_COLLATE setting for the database]' \
|
||||||
|
--lc-ctype='[LC_CTYPE setting for the database]' \
|
||||||
|
{-O+,--owner=}':database user to own the new database:_pgsql_users' \
|
||||||
|
{-T+,--template=}':database template:_pgsql_databases' \
|
||||||
|
'--version[output version information, then exit]' \
|
||||||
|
{-\?,--help}'[display help]' \
|
||||||
|
\
|
||||||
|
--maintenance-db=':alternate maintenance database:_pgsql_databases' \
|
||||||
|
{-q,--quiet}'[non verbose mode]' \
|
||||||
|
--location=':database location (unsupported since PostgreSQL 8.0):_directories' \
|
||||||
|
':PostgreSQL database:' \
|
||||||
|
':comment:'
|
||||||
|
}
|
||||||
|
|
||||||
|
_dropdb () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-e,--echo}'[display SQL queries]' \
|
||||||
|
{-f,--force}'[try to terminate other connections before dropping]' \
|
||||||
|
{-i,--interactive}'[confirm before drop]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
--if-exists'[don'\''t report error if database does'\''t exist]' \
|
||||||
|
--maintenance-db=':alternate maintenance database:_pgsql_databases' \
|
||||||
|
{-q,--quiet}'[non verbose mode]' \
|
||||||
|
':PostgreSQL database:_pgsql_databases'
|
||||||
|
}
|
||||||
|
|
||||||
|
_vacuumdb () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-a,--all}'[vacuum all databases]' \
|
||||||
|
{-d+,--dbname=}':database to connect to:_pgsql_databases' \
|
||||||
|
--disable-page-skipping'[disable all page-skipping behavior]' \
|
||||||
|
{-e,--echo}'[show the commands being sent to the server]' \
|
||||||
|
{-f,--full}'[do full vacuuming]' \
|
||||||
|
{-F,--freeze}'[freeze row transaction information]' \
|
||||||
|
--force-index-cleanup'[always remove index entries that point to dead tuples]' \
|
||||||
|
{-j,--jobs=}'[use this many concurrent connections to vacuum]' \
|
||||||
|
'--min-mxid-age=[minimum multixact ID age of tables to vacuum]' \
|
||||||
|
'--min-xid-age=[minimum transaction ID age of tables to vacuum]' \
|
||||||
|
--no-index-cleanup'[don'\''t remove index entries that point to dead tuples]' \
|
||||||
|
--no-process-toast'[skip the TOAST table associated with the table to vacuum]' \
|
||||||
|
--no-truncate'[don'\''t truncate empty pages at the end of the table]' \
|
||||||
|
{-P+,--parallel=}'[use this many background workers for vacuum, if available]' \
|
||||||
|
{-q,--quiet}'[do not write any messages]' \
|
||||||
|
'--skip-locked[skip relations that cannot be immediately locked]' \
|
||||||
|
{-t+,--table=}':table to dump:_pgsql_tables' \
|
||||||
|
{-v,--verbose}'[write a lot of output]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
{-z,--analyze}'[update optimizer hints]' \
|
||||||
|
{-Z,--analyze-only}'[only update optimizer statistics; no vacuum]' \
|
||||||
|
--analyze-in-stages'[only update optimizer statistics, in multiple stages for faster results; no vacuum]' \
|
||||||
|
{-\?,--help}'[display help]' \
|
||||||
|
--maintenance-db='[alternate maintenance database]' \
|
||||||
|
'1:PostgreSQL database:_pgsql_databases'
|
||||||
|
}
|
||||||
|
|
||||||
|
_createuser () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-c,--connection-limit=}'[connection limit for role (default: no limit)]' \
|
||||||
|
{-d,--createdb}'[role can create new databases]' \
|
||||||
|
{-D,--no-createdb}'[role cannot create databases]' \
|
||||||
|
{-e,--echo}'[display SQL queries]' \
|
||||||
|
{-g,--role=}'[new role will be a member of this role]' \
|
||||||
|
{-i,--inherit}'[role inherits privileges of roles it is a member of (default)]' \
|
||||||
|
{-I,--no-inherit}'[role does not inherit privileges]' \
|
||||||
|
{-l,--login}'[role can login (default)]' \
|
||||||
|
{-L,--no-login}'[role cannot login]' \
|
||||||
|
{-P,--pwprompt}'[assign a password to new role]' \
|
||||||
|
{-r,--createrole}'[role can create new roles]' \
|
||||||
|
{-R,--no-createrole}'[role cannot create roles]' \
|
||||||
|
{-s,--superuser}'[role will be superuser]' \
|
||||||
|
{-S,--no-superuser}'[role will not be superuser]' \
|
||||||
|
--interactive'[prompt for missing role name and attributes rather than using defaults]' \
|
||||||
|
--replication'[role can initiate replication]' \
|
||||||
|
--no-replication'[role cannot initiate replication]' \
|
||||||
|
{-E,--encrypted}'[encrypt stored password]' \
|
||||||
|
{-N,--unencrypted}'[do not encrypt stored password]' \
|
||||||
|
{-\?,--help}'[display help]'
|
||||||
|
}
|
||||||
|
|
||||||
|
_dropuser () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
"$_pgsql_common_opts[@]" \
|
||||||
|
{-e,--echo}'[display SQL queries]' \
|
||||||
|
{-q,--quiet}'[non verbose mode]' \
|
||||||
|
{-i,--interactive}'[prompt before deleting anything, and prompt for role name if not specified]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
--if-exists'[don'\''t report error if user doesn'\''t exist]' \
|
||||||
|
':PostgreSQL user:_pgsql_users'
|
||||||
|
}
|
||||||
|
|
||||||
|
_initdb () {
|
||||||
|
local curcontext="$curcontext" state line expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
{--auth=,-A+}':default authentication method for local connections:_values "auth methods" $_pgsql_auth_methods[@]' \
|
||||||
|
--auth-host=':default authentication method for local TCP/IP connections:_values "auth methods" $_pgsql_auth_methods[@]' \
|
||||||
|
--auth-local=':default authentication method for local-socket connections:_values "auth methods" $_pgsql_auth_methods[@]' \
|
||||||
|
{-D+,--pgdata=}':location for this database cluster:_files' \
|
||||||
|
{-E+,--encoding=}':set default encoding for new databases:_pgsql_encodings' \
|
||||||
|
{-g,--allow-group-access}'[allow group readexecute on data directory]' \
|
||||||
|
{-k,--data-checksums}':use data page checksums:' \
|
||||||
|
--locale=':set default locale for new databases:' \
|
||||||
|
--lc-collate=':set the default locale for collate:' \
|
||||||
|
--lc-ctype=':set the default locale for ctype:' \
|
||||||
|
--lc-messages=':set the default locale for messages:' \
|
||||||
|
--lc-monetary=':set the default locale for monetary:' \
|
||||||
|
--lc-numeric=':set the default locale for numeric:' \
|
||||||
|
--lc-time=':set the default local for time:' \
|
||||||
|
--no-locale'[equivalent to --locale=C]' \
|
||||||
|
--pwfile=':read password for the new superuser from file:_files' \
|
||||||
|
{-T+,--text-search-config=}'[default text search configuration]' \
|
||||||
|
{-U+,--username=NAME}':database superuser name:' \
|
||||||
|
{-W,--pwprompt}'[prompt for a password for the new superuser]' \
|
||||||
|
{-X+,--waldir=}':location for the write-ahead log directory:_files' \
|
||||||
|
--xlogdir=':location for the transaction log directory (unsupported since PostgreSQL 10):_files' \
|
||||||
|
--wal-segsize='[size of WAL segments, in megabytes]' \
|
||||||
|
{-d,--debug}'[generate lots of debugging output]' \
|
||||||
|
--discard-caches'[set debug_discard_caches=1]' \
|
||||||
|
-L+':where to find the input files:_files' \
|
||||||
|
{-n,--no-clean}'[do not clean up after errors]' \
|
||||||
|
{-N,--no-sync}':do not wait for changes to be written safely to disk:' \
|
||||||
|
--instructions'[do not print instructions for next steps]' \
|
||||||
|
{-s,--show}'[show internal settings]' \
|
||||||
|
{-S,--sync-only}'[only sync data directory]' \
|
||||||
|
{-V,--version}'[output version information, then exit]' \
|
||||||
|
{-\?,--help}'[display help]' \
|
||||||
|
':location for this database cluster:_files'
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_utils () {
|
||||||
|
local _pgsql_common_opts _pgsql_auth_methods
|
||||||
|
|
||||||
|
_pgsql_common_opts=(
|
||||||
|
{-\?,--help}'[display help]'
|
||||||
|
{-h+,--host=}':database host:_pgsql_host_or_dir'
|
||||||
|
{-p+,--port=}':database port number:_pgsql_ports'
|
||||||
|
{-U+,--username=}':connect as user:_pgsql_users'
|
||||||
|
{-W,--password}'[prompt for password]'
|
||||||
|
{-w,--no-password}'[never prompt for password]'
|
||||||
|
--role='[do SET ROLE before restore]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_pgsql_auth_methods=(
|
||||||
|
trust
|
||||||
|
reject
|
||||||
|
md5
|
||||||
|
password
|
||||||
|
gss
|
||||||
|
sspi
|
||||||
|
krb5
|
||||||
|
ident
|
||||||
|
peer
|
||||||
|
ldap
|
||||||
|
radius
|
||||||
|
cert
|
||||||
|
pam
|
||||||
|
)
|
||||||
|
|
||||||
|
case "$service" in
|
||||||
|
psql) _psql "$@" ;;
|
||||||
|
pg_dump) _pg_dump "$@" ;;
|
||||||
|
pg_dumpall) _pg_dumpall "$@" ;;
|
||||||
|
pg_restore) _pg_restore "$@" ;;
|
||||||
|
createdb) _createdb "$@" ;;
|
||||||
|
dropdb) _dropdb "$@" ;;
|
||||||
|
vacuumdb) _vacuumdb "$@" ;;
|
||||||
|
createuser) _createuser "$@" ;;
|
||||||
|
dropuser) _dropuser "$@" ;;
|
||||||
|
initdb) _initdb "$@" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_pgsql_utils "$@"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
@ -0,0 +1,190 @@
|
||||||
|
#compdef play
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for Play! framework 1.2.2 (https://www.playframework.com/).
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * Julien Nicoulaud <julien.nicoulaud@gmail.com>
|
||||||
|
# * Mario Fernandez (https://github.com/sirech)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
_play() {
|
||||||
|
local context curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
local ret=1
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
'1: :_play_cmds' \
|
||||||
|
'*::arg:->args' \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(args)
|
||||||
|
curcontext="${curcontext%:*:*}:play-cmd-$words[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(build-module|list-modules|lm|check|id)
|
||||||
|
_message 'no more arguments' && ret=0
|
||||||
|
;;
|
||||||
|
(dependencies|deps)
|
||||||
|
_arguments \
|
||||||
|
'1:: :_play_apps' \
|
||||||
|
'(--debug)--debug[Debug mode (even more information logged than in verbose mode)]' \
|
||||||
|
'(--jpda)--jpda[Listen for JPDA connection. The process will be suspended until a client is plugged to the JPDA port.]' \
|
||||||
|
'(--sync)--sync[Keep lib/ and modules/ directory synced. Delete unknown dependencies.]' \
|
||||||
|
'(--verbose)--verbose[Verbose Mode]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(clean|javadoc|jd|out|pid|secret|stop)
|
||||||
|
_arguments '1:: :_play_apps' && ret=0
|
||||||
|
;;
|
||||||
|
(help)
|
||||||
|
_arguments '1: :_play_cmds -F "(cp deps ec idea jd st lm nb nm help antify evolutions evolutions:apply evolutions:markApplied evolutions:resolve)"' && ret=0
|
||||||
|
;;
|
||||||
|
(status|st)
|
||||||
|
_arguments \
|
||||||
|
'1:: :_play_apps' \
|
||||||
|
'(--url)--url[If you want to monitor an application running on a remote server, specify the application URL using this option]:URL:_urls' \
|
||||||
|
'(--secret)--secret[You can provide your own secret key using this option]:Secret key' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(new)
|
||||||
|
_arguments \
|
||||||
|
'1: :_play_apps' \
|
||||||
|
'(--with)--with[Automatically enable this set of module for the newly created application]:Modules list:_play_modules_list' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(install)
|
||||||
|
_arguments '1:Play! module:_play_modules_dash_versions' && ret=0
|
||||||
|
;;
|
||||||
|
(new-module)
|
||||||
|
_arguments '1:Module directory:_files -/' && ret=0
|
||||||
|
;;
|
||||||
|
(test|precompile|run|start|war|auto-test|classpath|cp|eclipsify|ec|idealize|idea|modules|netbeansify|nb)
|
||||||
|
local cmd_args; cmd_args=(
|
||||||
|
'1:: :_play_apps'
|
||||||
|
'(--deps)--deps[Resolve and install dependencies before running the command]'
|
||||||
|
)
|
||||||
|
case $line[1] in
|
||||||
|
(precompile|run|start|restart|war)
|
||||||
|
local app_dir="$line[2]"
|
||||||
|
[[ -d "$app_dir" ]] || app_dir=.
|
||||||
|
[[ -f "$app_dir/conf/application.conf" ]] && cmd_args+=('--'${(u)${(M)$(<$app_dir/conf/application.conf):#%*}%%.*}'[Use this ID to run the application (override the default framework ID)]')
|
||||||
|
;|
|
||||||
|
(test|run)
|
||||||
|
cmd_args+=('(-f)-f[Disable the JPDA port checking and force the jpda.port value]')
|
||||||
|
;|
|
||||||
|
(war)
|
||||||
|
cmd_args+=(
|
||||||
|
'(-o --output)'{-o,--output}'[The path where the WAR directory will be created. The contents of this directory will first be deleted]:output directory:_files -/'
|
||||||
|
'(--zip)--zip[By default, the script creates an exploded WAR. If you want a zipped archive, specify the --zip option]'
|
||||||
|
'(--exclude)--exclude[Excludes a list of colon separated directories]:excluded directories list:_play_colon_dirs_list'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(test|run|start|restart|war)
|
||||||
|
cmd_args+=('*:Java option')
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
_arguments "$cmd_args[@]" && ret=0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_call_function ret _play_cmd_$words[1] && ret=0
|
||||||
|
(( ret )) && _message 'no more arguments'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# FIXME Completes only core commands, some modules add commands too (eg Maven). Where do we get them ?
|
||||||
|
# FIXME Parse 'play help' and 'play help <command>' (for aliases) instead of hard-coding.
|
||||||
|
(( $+functions[_play_cmds] )) ||
|
||||||
|
_play_cmds() {
|
||||||
|
local commands; commands=(
|
||||||
|
'antify:Create a build.xml file for this project'
|
||||||
|
'auto-test:Automatically run all application tests'
|
||||||
|
'build-module:Build and package a module'
|
||||||
|
'check:Check for a release newer than the current one'
|
||||||
|
{classpath,cp}':Display the computed classpath'
|
||||||
|
'clean:Delete temporary files (including the bytecode cache)'
|
||||||
|
{dependencies,deps}':Resolve and retrieve project dependencies'
|
||||||
|
{eclipsify,ec}':Create all Eclipse configuration files'
|
||||||
|
'evolutions:Run the evolution check'
|
||||||
|
'evolutions\:apply:Automatically apply pending evolutions'
|
||||||
|
'evolutions\:mark:AppliedMark pending evolutions as manually applied'
|
||||||
|
'evolutions\:resolve:Resolve partially applied evolution'
|
||||||
|
'help:Display help on a specific command'
|
||||||
|
'id:Define the framework ID'
|
||||||
|
{idealize,idea}':Create all IntelliJ Idea configuration files'
|
||||||
|
'install:Install a module'
|
||||||
|
{javadoc,jd}':Generate your application Javadoc'
|
||||||
|
{list-modules,lm}':List modules available from the central modules repository'
|
||||||
|
'modules:Display the computed modules list'
|
||||||
|
{netbeansify,nb}':Create all NetBeans configuration files'
|
||||||
|
'new:Create a new application'
|
||||||
|
{new-module,nm}':Create a module'
|
||||||
|
'out:Follow logs/system.out file'
|
||||||
|
'pid:Show the PID of the running application'
|
||||||
|
'precompile:Precompile all Java sources and templates to speed up application start-up'
|
||||||
|
'restart:Restart the running application'
|
||||||
|
'run:Run the application in the current shell'
|
||||||
|
'secret:Generate a new secret key'
|
||||||
|
'start:Start the application in the background'
|
||||||
|
{status,st}':Display the running application status'
|
||||||
|
'stop:Stop the running application'
|
||||||
|
'test:Run the application in test mode in the current shell'
|
||||||
|
'war:Export the application as a standalone WAR archive'
|
||||||
|
)
|
||||||
|
_describe -t commands 'Play! command' commands "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_play_apps] )) ||
|
||||||
|
_play_apps() {
|
||||||
|
_wanted application expl 'Play! application directory' _files -/
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_play_modules] )) ||
|
||||||
|
_play_modules() {
|
||||||
|
local modules; modules=(${(ps:,:)${${${(S)${(f)$(_call_program modules $service list-modules)}//\]*\[/,}%%\]*}##*\[}})
|
||||||
|
_describe -t modules 'Play! module' modules "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_play_modules_dash_versions] )) ||
|
||||||
|
_play_modules_dash_versions() {
|
||||||
|
local ret=1
|
||||||
|
if compset -P '*-'; then
|
||||||
|
local versions; versions=(${(ps:,:)${${${${${(f)$(_call_program versions $service list-modules)}##*${IPREFIX%-}\]}#*Versions:}%%"~"*}//[[:space:]]/}})
|
||||||
|
_describe -t module-versions "${IPREFIX%-} module versions" versions && ret=0
|
||||||
|
else
|
||||||
|
_wanted modules expl 'Play! module' _play_modules -qS- && ret=0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_play_modules_list] )) ||
|
||||||
|
_play_modules_list() {
|
||||||
|
compset -P '*,'; compset -S ',*'
|
||||||
|
_wanted module-list expl 'Play! modules list' _play_modules -qS,
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_play_colon_dirs_list] )) ||
|
||||||
|
_play_colon_dirs_list() {
|
||||||
|
compset -P '*:'; compset -S ':*'
|
||||||
|
_wanted directories-list expl 'Directories list' _files -/ -qS:
|
||||||
|
}
|
||||||
|
|
||||||
|
_play "$@"
|
||||||
|
|
||||||
|
# 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
|
||||||
Loading…
Reference in New Issue