mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-21 00:01:26 +01:00
22434: completion for vserver.
This commit is contained in:
parent
903e3251fc
commit
f52938607d
2 changed files with 136 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2006-04-28 Clint Adams <clint@zsh.org>
|
||||||
|
|
||||||
|
* 22434, intrigeri@boum.org:
|
||||||
|
Completion/Linux/Command/_vserver: completion for vserver.
|
||||||
|
|
||||||
2006-04-26 Clint Adams <clint@zsh.org>
|
2006-04-26 Clint Adams <clint@zsh.org>
|
||||||
|
|
||||||
* 22433, R. Ramkumar: Completion/Unix/Command/_mpc:
|
* 22433, R. Ramkumar: Completion/Unix/Command/_mpc:
|
||||||
|
|
131
Completion/Linux/Command/_vserver
Normal file
131
Completion/Linux/Command/_vserver
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
#compdef vserver
|
||||||
|
|
||||||
|
_vserver () {
|
||||||
|
|
||||||
|
# local variables
|
||||||
|
local curcontext="$curcontext" state line expl ret=1
|
||||||
|
local cmd=$words[3]
|
||||||
|
|
||||||
|
# dispatch
|
||||||
|
case "$cmd" in
|
||||||
|
apt-cache|apt-config|apt-get)
|
||||||
|
compset -n 3
|
||||||
|
_dispatch $cmd:t $cmd $cmd:t -default- && ret=0
|
||||||
|
;;
|
||||||
|
exec)
|
||||||
|
_arguments -C \
|
||||||
|
'1: :->vsnames' \
|
||||||
|
'2: :->cmds' \
|
||||||
|
'3:command name: _command_names -e' \
|
||||||
|
'*::arguments: _normal' && ret=0
|
||||||
|
;;
|
||||||
|
stop|restart|condrestart|enter|running|status)
|
||||||
|
_arguments -C \
|
||||||
|
'1: :->vsnames' \
|
||||||
|
'2: :->cmds' \
|
||||||
|
'*::arguments: _message "no more arguments"' && ret=0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_arguments -C \
|
||||||
|
'(-)--help[print help information]' \
|
||||||
|
'(- *)--version[print client version information]' \
|
||||||
|
'1: :->vsnames' \
|
||||||
|
'2: :->cmds' \
|
||||||
|
'*:: :->args' && ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# cache initialization
|
||||||
|
if [[ -n "$state" ]]; then
|
||||||
|
if (( ! $+_cache_vserver_cfgdir )); then
|
||||||
|
typeset -g _cache_vserver_cfgdir_initialized
|
||||||
|
_vserver_cache_cfgdir
|
||||||
|
fi
|
||||||
|
if (( ! $+_cache_vserver_vsnames )); then
|
||||||
|
typeset -g _cache_vserver_vsnames_initialized
|
||||||
|
_vserver_cache_vsnames
|
||||||
|
fi
|
||||||
|
if (( ! $+_cache_vserver_cmds )); then
|
||||||
|
typeset -g _cache_vserver_cmds_initialized
|
||||||
|
_vserver_cache_cmds
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$state" in
|
||||||
|
vsnames)
|
||||||
|
_wanted commands expl 'vserver name' _vserver_vsnames && ret=0
|
||||||
|
;;
|
||||||
|
cmds)
|
||||||
|
_wanted commands expl 'vserver command' _vserver_commands && ret=0
|
||||||
|
;;
|
||||||
|
args)
|
||||||
|
local args
|
||||||
|
if $+args; then
|
||||||
|
_arguments "$args[@]" && ret=0
|
||||||
|
else
|
||||||
|
ret=0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_vserver_commands] )) ||
|
||||||
|
_vserver_commands() {
|
||||||
|
compadd "$@" -k _cache_vserver_cmds || compadd "$@" ${(s.:.)_cache_vserver_cmds}
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_svk_list_patches] )) ||
|
||||||
|
_vserver_vsnames() {
|
||||||
|
local expl
|
||||||
|
_wanted vserver expl 'vserver name' compadd -S '' $_cache_vserver_vsnames[@]
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_vserver_cache_cfgdir] )) ||
|
||||||
|
_vserver_cache_cfgdir() {
|
||||||
|
if [[ "$_cache_vserver_cfgdir_initialized" != true ]]; then
|
||||||
|
typeset -ga _cache_vserver_cfgdir
|
||||||
|
_cache_vserver_cfgdir=`vserver-info info SYSINFO | grep '^ *cfg-Directory' | awk '{print $2}'`
|
||||||
|
_cache_vserver_cfgdir_initialized=true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_vserver_cache_vsnames] )) ||
|
||||||
|
_vserver_cache_vsnames() {
|
||||||
|
if [[ "$_cache_vserver_vsnames_initialized" != true ]]; then
|
||||||
|
typeset -ga _cache_vserver_vsnames
|
||||||
|
_cache_vserver_vsnames=( $(ls -d $_cache_vserver_cfgdir/*/ | sed -e s,$_cache_vserver_cfgdir,, | tr -d '/') )
|
||||||
|
_cache_vserver_vsnames_initialized=true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_vserver_cache_cmds] )) ||
|
||||||
|
_vserver_cache_cmds() {
|
||||||
|
if [[ "$_cache_vserver_cmds_initialized" != true ]]; then
|
||||||
|
typeset -ga _cache_vserver_cmds
|
||||||
|
_cache_vserver_cmds=(
|
||||||
|
start
|
||||||
|
stop
|
||||||
|
restart
|
||||||
|
condrestart
|
||||||
|
suexec
|
||||||
|
exec
|
||||||
|
enter
|
||||||
|
chkconfig
|
||||||
|
running
|
||||||
|
status
|
||||||
|
build
|
||||||
|
unify
|
||||||
|
pkg
|
||||||
|
apt-get
|
||||||
|
apt-config
|
||||||
|
apt-cache
|
||||||
|
rpm
|
||||||
|
pkgmgmt
|
||||||
|
)
|
||||||
|
_cache_vserver_cmds_initialized=true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_vserver "$@"
|
Loading…
Reference in a new issue