plugins/cake/cake.plugin.zsh
66c6260c
 # Set this to 1 if you want to cache the tasks
c09e2f29
 cache_task_list=1
66c6260c
 
 # Cache filename
c09e2f29
 cache_file='.cake_task_cache'
66c6260c
 
 _cake_does_target_list_need_generating () {
 
c09e2f29
 	if [ $cache_task_list -eq 0 ]; then
66c6260c
 		return 1;
 	fi
 
c09e2f29
 	if [ ! -f $cache_file ]; then return 0;
66c6260c
 	else
c09e2f29
 		accurate=$(stat -f%m $cache_file)
66c6260c
 		changed=$(stat -f%m Cakefile)
 		return $(expr $accurate '>=' $changed)
 	fi
 }
 
 _cake () {
 	if [ -f Cakefile ]; then
 		if _cake_does_target_list_need_generating; then
c09e2f29
 			cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cache_file
 			compadd `cat $cache_file`
66c6260c
 		else
 			compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'`
 		fi
 	fi
 }
 
 compdef _cake cake