]> git.rmz.io Git - dotfiles.git/blob - zsh/plugins/cake/cake.plugin.zsh
add xbindkeysrc
[dotfiles.git] / zsh / plugins / cake / cake.plugin.zsh
1 # Set this to 1 if you want to cache the tasks
2 _cake_cache_task_list=1
3
4 # Cache filename
5 _cake_task_cache_file='.cake_task_cache'
6
7 _cake_get_target_list () {
8 cake | grep '^cake ' | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'
9 }
10
11 _cake_does_target_list_need_generating () {
12
13 if [ ${_cake_cache_task_list} -eq 0 ]; then
14 return 1;
15 fi
16
17 if [ ! -f ${_cake_task_cache_file} ]; then return 0;
18 else
19 accurate=$(stat -f%m $_cake_task_cache_file)
20 changed=$(stat -f%m Cakefile)
21 return $(expr $accurate '>=' $changed)
22 fi
23 }
24
25 _cake () {
26 if [ -f Cakefile ]; then
27 if _cake_does_target_list_need_generating; then
28 _cake_get_target_list > ${_cake_task_cache_file}
29 compadd `cat ${_cake_task_cache_file}`
30 else
31 compadd `_cake_get_target_list`
32 fi
33 fi
34 }
35
36 compdef _cake cake