From aa9b42f002e0bb55977cc0708b87409cbdfe52c0 Mon Sep 17 00:00:00 2001 From: Christian Heim Date: Sat, 20 Jan 2007 12:17:01 +0000 Subject: Adding missing files. svn path=/; revision=109 --- sys-cluster/util-vserver/Manifest | 4 + sys-cluster/util-vserver/files/bash_completion | 300 +++++++++++++++++++++++++ 2 files changed, 304 insertions(+) create mode 100644 sys-cluster/util-vserver/files/bash_completion diff --git a/sys-cluster/util-vserver/Manifest b/sys-cluster/util-vserver/Manifest index 355028a..55e445d 100644 --- a/sys-cluster/util-vserver/Manifest +++ b/sys-cluster/util-vserver/Manifest @@ -1,3 +1,7 @@ +AUX bash_completion 7568 RMD160 45feafa30f715fb287403518eee8c45fecfe418e SHA1 d281bcad111df21ab0f37703142dd102145d784e SHA256 2232166a5aed9857a7a5c30adfdd4ea944e0608a29fad05f229b8cef2d61795d +MD5 20d9b2d8c50fe0ca9bb381d16daf2d7d files/bash_completion 7568 +RMD160 45feafa30f715fb287403518eee8c45fecfe418e files/bash_completion 7568 +SHA256 2232166a5aed9857a7a5c30adfdd4ea944e0608a29fad05f229b8cef2d61795d files/bash_completion 7568 AUX init.d/vprocunhide 506 RMD160 b26000655f88eba51e2e80b5665f49b7698324a3 SHA1 f1bf6bc18f228c16090bbd8daec0b1e497ef75a8 SHA256 4e7f95b4bd0aca85383d0fc5ce9ffd78869a60e6f0f2dffaa4b1c8ec9d9b2c3d MD5 d5c496a8a3399c40a3c8b6d56de57aa2 files/init.d/vprocunhide 506 RMD160 b26000655f88eba51e2e80b5665f49b7698324a3 files/init.d/vprocunhide 506 diff --git a/sys-cluster/util-vserver/files/bash_completion b/sys-cluster/util-vserver/files/bash_completion new file mode 100644 index 0000000..73a9fef --- /dev/null +++ b/sys-cluster/util-vserver/files/bash_completion @@ -0,0 +1,300 @@ +# Completion for the vserver command. Source this file (or on some systems +# add it to ~/.bash_completion and start a new shell) and bash's completion +# mechanism will know all about vserver's options! +# +# Copyright (C) Thomas Champagne +# +# 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, 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. +# +# The latest version of this software can be obtained here: +# +# http://linux-vserver.org/Vserver+Completion +# +# version 0.4.0 + +have vserver-info && { +: ${UTIL_VSERVER_VARS:=$(vserver-info - SYSINFO |grep prefix: | awk '{ print $2}')/lib/util-vserver/util-vserver-vars} + +test -e "$UTIL_VSERVER_VARS" && { + +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + +_vserver() { + local cur cmds cmdOpts cmdMethodOpts helpCmds names names_pipe func i j method + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + # find available vServers: + # call function getAllVservers in vserver library + getAllVservers names + names_pipe=`echo ${names[@]} | sed 's/ /|/g'` + + # available commands + cmds='start stop restart condrestart suexec exec enter chkconfig \ + running status unify pkg apt-get apt-config apt-cache \ + rpm pkgmgmt delete' + + # options (long and short name) + cmdOpts='--help --version --debug --defaulttty -s --sync -v \ + --verbose --silent --' + + cmdMethodOpts='-m -n --context --confdir --lockfile \ + --hostname --netdev --netbcast --netmask \ + --netprefix --interface --cpuset \ + --cpusetcpus --cpusetmems --cpusetvirt \ + --initstyle --flags --help --' + + # if the previous option is a single option + helpCmds='--help|--version' + if [[ ${COMP_WORDS[1]} == @($helpCmds) ]] ; then + return 0 + fi + + # lookup the vServer name + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @($names_pipe) ]] ; then + # found it! + break + fi + done + + #a vserver has been found + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + # Show the vserver command without build + case "${COMP_WORDS[i+1]}" in + start) + COMPREPLY=( $( compgen -W "--rescue --rescue-cmd" -- $cur ) ) + ;; + # No completion for apt-config + stop|restart|condrestart|enter|running|status|apt-config|delete) + ;; + suexec) + # I don't know how to do + COMPREPLY=( $( compgen -W -- $cur ) ) + ;; + exec) + #I don't know how to do + COMPREPLY=( $( compgen -W "" -- $cur ) ) + ;; + unify) + COMPREPLY=( $( compgen -W "-R" -- $cur ) ) + ;; + apt-get|apt-cache) + func=${COMP_WORDS[i+1]} + COMP_WORDS=( ${COMP_WORDS[@]:$((i+1))} ) + COMP_CWORD=$((COMP_CWORD-i-1)) + declare -f _${func//-/_} > /dev/null && _${func//-/_} + ;; + *) + COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) + ;; + esac + return 0 + else + #no vserver name found + prev=${COMP_WORDS[COMP_CWORD-1]} + + #search the new name of vserver + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do + if [[ ${COMP_WORDS[i]} == !(vserver|-*) ]] ; then + # found it! + break + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + j=$i + i=${#COMP_WORDS[@]} + for (( ; j < ${#COMP_WORDS[@]}-1; j++ )) ; do + if [[ ${COMP_WORDS[j]} == "--" ]]; then + # method's parameter + case "$method" in + legacy|copy) + ;; + apt-rpm) + COMPREPLY=( $( compgen -W "-d" -- $cur ) ) + ;; + yum) + COMPREPLY=( $( compgen -W "-d" -- $cur ) ) + ;; + rpm) + COMPREPLY=( $( compgen -W "-d --empty --force --nodeps" -- $cur ) ) + ;; + skeleton) + ;; + debootstrap) + COMPREPLY=( $( compgen -W "-d -m -s --" -- $cur ) ) + ;; + *) + ;; + esac + return 0 + break + fi + + if [[ ${COMP_WORDS[j]} == @(build|-m) ]]; then + i=$j + if (( $j+1 < ${#COMP_WORDS[@]}-1 )) ; then + method=${COMP_WORDS[j+1]} + fi + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + case $prev in + --help) + ;; + -n|--context|--confdir|--lockfile|--hostname|--netdev|--netbcast|--netmask|--netprefix|--interface|--cpuset|--cpusetcpus|--cpusetmems|--cpusetvirt|--initstyle|--flags) + COMPREPLY=( $( compgen -W "" -- $cur ) ) + ;; + -m) + COMPREPLY=( $( compgen -W "legacy copy apt-rpm yum rpm skeleton debootstrap" -- $cur ) ) + ;; + *) + COMPREPLY=( $( compgen -W "$cmdMethodOpts" -- $cur ) ) + ;; + esac + else + COMPREPLY=( $( compgen -W "build" -- $cur ) ) + fi + else + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + + return 0 + fi + + return 0 +} + +complete -F _vserver vserver + +_vapt_rpm_yum() +{ + local cur cmds cmdOpts helpCmds names func i + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + # options (long and short name) + cmdOpts='--help --version --quiet -q --all' + + # if the previous option is a single option + helpCmds='--help|--version' + + if [[ "${COMP_WORDS[1]}" == "@($helpCmds)" ]] ; then + return 0 + fi + + # search -- + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do + if [[ ${COMP_WORDS[i]} = "--" ]] ; then + # found it! + break + fi + done + + # find available vServers + # call function getAllVservers in vserver library + getAllVservers names + names_pipe=`echo ${names[@]}" --all" | sed 's/ /|/g'` + + if (( $i < ${#COMP_WORDS[@]}-1 )) && (( $i < $COMP_CWORD )) ; then + func=${COMP_WORDS[0]:1} + COMP_WORDS=( $func ${COMP_WORDS[@]:$((i+1))} ) + COMP_CWORD=$((COMP_CWORD-i)) + declare -f _${func//-/_} > /dev/null && _${func//-/_} + else + # search vServer name + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do + if [[ ${COMP_WORDS[i]} == @($names_pipe) ]] ; then + # found it! + break + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + if [[ "${COMP_WORDS[i]}" = "--all" ]] ; then + cmdOpts='--' + COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) + else + cmdOpts='--' + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + else + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + fi + + return 0 +} + +_vserver_copy() +{ + local cur prev cmdOpts helpCmds confCmds names names_pipe i + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + # find available vServers + # call function getAllVservers in vserver library + getAllVservers names + names_pipe=`echo ${names[@]} | sed 's/ /|/g'` + + # options (long and short name) + cmdOpts='--help -h --version -V --verbose -v --quiet -q \ + --vsroot -r --rsh -R --stopstart -s \ + --domain -d --ip -i' + + # if the previous option is a single option + helpCmds='--help|-h|--version|-V' + + if [[ ${COMP_WORDS[1]} == @($helpCmds) ]] ; then + return 0 + fi + + confCmds='--ip|-i|--domain|-d' + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $prev == @($confCmds) ]] ; then + return 0 + fi + + # search a vServer name + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @($names_pipe) ]] ; then + # found it! + break + fi + done + + if (( $i < ${#COMP_WORDS[@]}-1 )) ; then + return 0 + else + COMPREPLY=( $( compgen -W "${names[@]} $cmdOpts" -- $cur ) ) + fi + + return 0 +} + +complete -F _vapt_rpm_yum vapt-get +complete -F _vapt_rpm_yum vrpm +complete -F _vapt_rpm_yum vyum +complete -F _vserver_copy vserver-copy + +} +} -- cgit v1.2.3-65-gdbad