123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # rake-fast
- # Fast rake autocompletion plugin for oh-my-zsh
- # This script caches the output for later usage and significantly speeds it up.
- # It generates a .rake_tasks file in parallel to the Rakefile.
- # You'll want to add `.rake_tasks` to your global .git_ignore file:
- # https://help.github.com/articles/ignoring-files#global-gitignore
- # You can force .rake_tasks to refresh with:
- # $ rake_refresh
- # This is entirely based on Ullrich Schäfer's work
- # (https://github.com/robb/.dotfiles/pull/10/),
- # which is inspired by this Ruby on Rails trick from 2006:
- # http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh/
- _rake_refresh () {
- if [ -f .rake_tasks ]; then
- rm .rake_tasks
- fi
- echo "Generating .rake_tasks..." > /dev/stderr
- _rake_generate
- cat .rake_tasks
- }
- _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_generate () {
- rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
- }
- _rake () {
- if [ -f Rakefile ]; then
- if _rake_does_task_list_need_generating; then
- echo "\nGenerating .rake_tasks..." > /dev/stderr
- _rake_generate
- fi
- compadd `cat .rake_tasks`
- fi
- }
- compdef _rake rake
- alias rake_refresh='_rake_refresh'
|