The Rails generator script/generate knows pretty well what things it can generate. In fact, it knows much better than I do. So, I think it could really give me some help when I’m typing along on the command line.
If you save the snippet below as /etc/bash_completion.d/generate you can enjoy this help, too.
_generate() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [ ! -d "$PWD/script" ]; then return 0 fi if [ $COMP_CWORD == 1 ] && [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-h -v\\ --help --version'\\ -- $cur )) return 0 fi if [ $COMP_CWORD == 2 ] && [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-p -f -s -q -t -c\\ --pretend --force --skip --quiet --backtrace --svn'\\ -- $cur )) return 0 fi COMPREPLY=( $(script/generate --help | \\ awk -F ': ' '/^ (Plugins|Rubygems|Builtin|User):/ { gsub(/, */, "\n", $2); print $2 }' | \\ command grep "^$cur" \\ )) } complete -F _generate $default generate