Blame view

plugins/cake/cake.plugin.zsh 712 Bytes
093a6c34b   mj   Squashed 'repos/r...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  # Set this to 1 if you want to cache the tasks
  _cake_cache_task_list=1
  
  # Cache filename
  _cake_task_cache_file='.cake_task_cache'
  
  _cake_get_target_list () {
  	cake | grep '^cake ' | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'
  }
  
  _cake_does_target_list_need_generating () {
  
  	if [ ${_cake_cache_task_list} -eq 0 ]; then
  		return 1;
  	fi
  
  	[ ! -f ${_cake_task_cache_file} ] && return 0;
  	[ Cakefile -nt ${_cake_task_cache_file} ] && return 0;
  	return 1;
  }
  
  _cake () {
  	if [ -f Cakefile ]; then
  		if _cake_does_target_list_need_generating; then
  			_cake_get_target_list > ${_cake_task_cache_file}
  			compadd `cat ${_cake_task_cache_file}`
  		else
  			compadd `_cake_get_target_list`
  		fi
  	fi
  }
  
  compdef _cake cake