prezto_config/plugins/cake/cake.plugin.zsh

34 lines
726 B
Bash
Raw Normal View History

2011-08-31 05:16:15 +02:00
# Set this to 1 if you want to cache the tasks.
cache_task_list=1
2011-08-31 05:16:15 +02:00
# Cache filename.
cache_file='.cake_task_cache'
2011-08-31 05:16:15 +02:00
function _cake_does_target_list_need_generating() {
if [[ $cache_task_list -eq 0 ]]; then
return 1
fi
2011-08-31 05:16:15 +02:00
if [[ ! -f $cache_file ]]; then
return 0
else
accurate=$(stat -f%m $cache_file)
changed=$(stat -f%m Cakefile)
return $(expr $accurate '>=' $changed)
fi
}
2011-08-31 05:16:15 +02:00
function _cake() {
if [[ -f Cakefile ]]; then
if _cake_does_target_list_need_generating; then
cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cache_file
compadd `cat $cache_file`
else
compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'`
fi
fi
}
compdef _cake cake
2011-08-31 05:16:15 +02:00