Package: zsh
Version: 4.3.2-8
Severity: wishlist
Tags: patch

Howdy,

Please add this completion function to the package, and if possible,
send it upstream. It should go into Unix/

Micah


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-1-vserver-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages zsh depends on:
ii  debconf [debconf-2.0]         1.5.0      Debian configuration management sy
ii  libc6                         2.3.6-7    GNU C Library: Shared libraries
ii  libncurses5                   5.5-1.1    Shared libraries for terminal hand

Versions of packages zsh recommends:
ii  libcap1                       1:1.10-14  support for getting/setting POSIX.
ii  libpcre3                      6.4-1.1    Perl 5 Compatible Regular Expressi

-- no debconf information
#compdef vserver

#  Copyright (C) 2005 [EMAIL PROTECTED] - property is theft !
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License along
#  with this program; if not, write to the Free Software Foundation, Inc.,
#  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

# ,----
# | NOTES
# `----
#
#   - SVN version: $Id$
#   - $URL$
#   - Tested on Debian GNU/Linux with util-vserver 0.30.209.
#
# ,----
# | TODO
# `----
#   - Use util-vserver shell functions library, as does the Bash
#     completion script found on /usr/lib/util-vserver/functions
#   - Implement commands arguments completion.
#

###
### Main completion function
###

_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 "[EMAIL PROTECTED]" && ret=0
      else
        ret=0
      fi
      ;;
  esac

  return ret
}

###
### Auxiliary completion functions
###

(( $+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 '' [EMAIL PROTECTED]
}

###
### Cache functions
###

(( $+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
}

###
### Main function call
###

_vserver "$@"

###
### Emacs variables
###

# Local Variables:
# mode:sh
# sh-basic-offset: 2
# End:

Reply via email to