]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/plugins/rake-fast/rake-fast.plugin.zsh
19dab154bac9fd197dbd54e6479e6da6167205ab
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / plugins / rake-fast / rake-fast.plugin.zsh
1 _rake_does_task_list_need_generating () {
2   [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] || { _is_rails_app && _tasks_changed }
3 }
4
5 _is_rails_app () {
6   [[ -e "bin/rails" ]] || [[ -e "script/rails" ]]
7 }
8
9 _tasks_changed () {
10   local -a files
11   files=(lib/tasks lib/tasks/**/*(N))
12
13   for file in $files; do
14     if [[ "$file" -nt .rake_tasks ]]; then
15       return 0
16     fi
17   done
18
19   return 1
20 }
21
22 _rake_generate () {
23   rake --silent --tasks | cut -d " " -f 2 | sed 's/\[.*\]//g' > .rake_tasks
24 }
25
26 _rake () {
27   if [[ -f Rakefile ]]; then
28     if _rake_does_task_list_need_generating; then
29       echo "\nGenerating .rake_tasks..." >&2
30       _rake_generate
31     fi
32     compadd $(cat .rake_tasks)
33   fi
34 }
35 compdef _rake rake
36
37 rake_refresh () {
38   [[ -f .rake_tasks ]] && rm -f .rake_tasks
39
40   echo "Generating .rake_tasks..." >&2
41   _rake_generate
42   cat .rake_tasks
43 }