#!/bin/bash # The #! is here so vim will do syntax highlighting. emacs: -*- sh -*- # # bash completion file for cobbler # # Copyright 2008 John L. Villalovos # # 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., 51 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Version History: # 0.1: Initial version to do some basic command line completion _cobbler() { local cur prev special specialsub SPECIAL_CMDS SPECIALSUB_CMDS COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} # Let's only run it once SPECIAL_CMDS=`cobbler-completion | sed "s/ /|/g"` for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do if [[ ${COMP_WORDS[i]} == @(${SPECIAL_CMDS}) ]]; then special=${COMP_WORDS[i]} break fi done if [ -n "$special" ] then # Take care of sub commands SPECIALSUB_CMDS=`cobbler-completion $special | sed "s/ /|/g"` if [ -n "${SPECIALSUB_CMDS}" ] ; then for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do if [[ ${COMP_WORDS[i]} == @(${SPECIALSUB_CMDS}) ]]; then specialsub=${COMP_WORDS[i]} break fi done else # This command has no subcommands COMPREPLY=( $( compgen -f -W '$( cobbler-completion $special )' -- $cur ) ) return 0 fi if [ -n "$specialsub" ] then COMPREPLY=( $( compgen -f -W '$( cobbler-completion $special $specialsub )' -- $cur ) ) return 0 else COMPREPLY=( $( compgen -W '$( cobbler-completion $special )' -- $cur ) ) return 0 fi fi case $cur in --*) COMPREPLY=( $( compgen -W 'help' -- $cur ) ) return 0 ;; -*) COMPREPLY=( $( compgen -W '-h' -- $cur ) ) return 0 ;; esac _count_args case $args in 1) COMPREPLY=( $( compgen -W '$( cobbler --helpbash )' -- $cur ) ) ;; esac } complete -F _cobbler cobbler