# cfrun completion -*- shell-script -*- _cfrun() { local cur prev words cword _init_completion || return local i section=1 for ((i = 1; i < cword; i++)); do if [[ ${words[i]} == -- ]]; then ((section++)) fi done case $section in 1) case $prev in -f) _filedir return ;; esac if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '-f -h -d -S -T -v' -- "$cur")) else local hostfile=${CFINPUTS:-/var/lib/cfengine/inputs}/cfrun.hosts for ((i = 1; i < cword; i++)); do if [[ ${words[i]} == -f ]]; then hostfile=${words[i + 1]} break fi done [[ ! -f $hostfile ]] && return COMPREPLY=($(compgen -W "$(command grep -v \ -E '(=|^$|^#)' $hostfile)" -- "$cur")) fi ;; 2) COMPREPLY=($(compgen -W '$(_parse_help cfagent)' -- "$cur")) ;; esac } && complete -F _cfrun cfrun # ex: filetype=sh