# bash completion for cfengine have cfagent || return _cfagent() { local cur prev words cword _init_completion || return case $prev in -f|--file) _filedir return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) fi } && complete -F _cfagent cfagent _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=$((section + 1)) fi done case $section in 1) case $prev in -f) _filedir return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-f -h -d -S -T -v' -- $cur ) ) else 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 0 COMPREPLY=( $(compgen -W "$( command grep -v \ -E '(=|^$|^#)' $hostfile )" -- "$cur" ) ) fi ;; 2) COMPREPLY=( $( compgen -W '$( _parse_help cfagent )' -- "$cur" ) ) ;; esac } && complete -F _cfrun cfrun # Local variables: # mode: shell-script # sh-basic-offset: 4 # sh-indent-comment: t # indent-tabs-mode: nil # End: # ex: ts=4 sw=4 et filetype=sh