浏览代码

Merge pull request #626 from nickstenning/upstream

Better cake completion
Robby Russell 13 年之前
父节点
当前提交
ebd0523a4a
共有 1 个文件被更改,包括 13 次插入9 次删除
  1. 13 9
      plugins/cake/cake.plugin.zsh

+ 13 - 9
plugins/cake/cake.plugin.zsh

@@ -1,18 +1,22 @@
 # Set this to 1 if you want to cache the tasks
-cache_task_list=1
+_cake_cache_task_list=1
 
 # Cache filename
-cache_file='.cake_task_cache'
+_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 [ $cache_task_list -eq 0 ]; then
+	if [ ${_cake_cache_task_list} -eq 0 ]; then
 		return 1;
 	fi
 
-	if [ ! -f $cache_file ]; then return 0;
+	if [ ! -f ${_cake_task_cache_file} ]; then return 0;
 	else
-		accurate=$(stat -f%m $cache_file)
+		accurate=$(stat -f%m $_cake_task_cache_file)
 		changed=$(stat -f%m Cakefile)
 		return $(expr $accurate '>=' $changed)
 	fi
@@ -21,12 +25,12 @@ _cake_does_target_list_need_generating () {
 _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`
+			_cake_get_target_list > ${_cake_task_cache_file}
+			compadd `cat ${_cake_task_cache_file}`
 		else
-			compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'`
+			compadd `_cake_get_target_list`
 		fi
 	fi
 }
 
-compdef _cake cake
+compdef _cake cake