diff options
Diffstat (limited to 'plugins/rake-fast/rake-fast.plugin.zsh')
-rw-r--r-- | plugins/rake-fast/rake-fast.plugin.zsh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh new file mode 100644 index 000000000..d305eb1f0 --- /dev/null +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -0,0 +1,29 @@ +_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 () { + [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] +} + +_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' |