if type have &>/dev/null && have rvc || type rvc &>/dev/null; then _rvc_modules() { ls "${RVC_DIRECTORY:-$HOME/remote-vc}" | grep -v '^rvc-installed$' } _rvc_files() { ( cd `dirname "$1"` && RVC_STATUS_FORMATSTRING="%s %s %s %s %s" rvc ls ) | sed -e '1,2d;$d;s/.*\///' } _rvc_bash_complete() { local cur="${COMP_WORDS[COMP_CWORD]}" if test $COMP_CWORD -eq 1; then COMPREPLY=(`compgen -W "install installfile appendfile update add addmultifile notedir diff do store restore release ldiff lrestore status dirstatus ls" "$cur"`) else case "${COMP_WORDS[1]}" in diff|store|restore|release) COMPREPLY=($(compgen -W "`_rvc_files "$cur"`" "$cur")) ;; install|update|dirstatus|status) COMPREPLY=($(compgen -W "`_rvc_modules`" "$cur")) ;; add|addmultifile|notedir|installfile|appendfile|ldiff|lrestore) if test $COMP_CWORD -eq 3; then COMPREPLY=($(compgen -W "`_rvc_modules`" "$cur")) else COMPREPLY=(`compgen -o filenames -G "$cur*"`) fi ;; *) # unhandled: do|ls) COMPREPLY=(`compgen -o filenames -G "$cur*"`) ;; esac fi return 0 } complete -F _rvc_bash_complete rvc fi # vim:syntax=sh