Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: _vserver
- X-seq: zsh-workers 22434
- From: Clint Adams <clint@xxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: PATCH: _vserver
- Date: Fri, 28 Apr 2006 14:35:00 -0400
- Mail-followup-to: zsh-workers@xxxxxxxxxx
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
_vserver from intrigeri@xxxxxxxx via Micah Anderson.
Index: Completion/Linux/Command/_vserver
===================================================================
RCS file: Completion/Linux/Command/_vserver
diff -N Completion/Linux/Command/_vserver
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Completion/Linux/Command/_vserver 28 Apr 2006 18:32:53 -0000
@@ -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 "$@"
Messages sorted by:
Reverse Date,
Date,
Thread,
Author