Tuesday, March 10, 2009

zsh completion for rake tasks

I have started using rake a lot, and although zsh has built-in rake task completion, it doesn't work that well. For instance, it doesn't complete nested tasks.

A quick google search turned up a great little rake task completion script for zsh.

In case that link doesn't work, here's the code:

_rake_does_task_list_need_generating () {   if [ ! -f .rake_tasks ]; then return 0;   else     accurate=$(stat -f%m .rake_tasks)     changed=$(stat -f%m Rakefile)     return $(expr $accurate '>=' $changed)   fi }  _rake () {   if [ -f Rakefile ]; then     if _rake_does_task_list_need_generating; then       echo "\nGenerating .rake_tasks..." > /dev/stderr       rake --silent --tasks | cut -d " " -f 2 > .rake_tasks     fi     compadd `cat .rake_tasks`   fi }  compdef _rake rake 

0 comments:

Post a Comment