Parent directory

cake.plugin.zsh

712 bytes
 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	[ ! -f ${_cake_task_cache_file} ] && return 0;
18	[ Cakefile -nt ${_cake_task_cache_file} ] && return 0;
19	return 1;
20}
21
22_cake () {
23	if [ -f Cakefile ]; then
24		if _cake_does_target_list_need_generating; then
25			_cake_get_target_list > ${_cake_task_cache_file}
26			compadd `cat ${_cake_task_cache_file}`
27		else
28			compadd `_cake_get_target_list`
29		fi
30	fi
31}
32
33compdef _cake cake