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