diff options
author | Robby Russell <robby@planetargon.com> | 2011-10-10 05:36:23 -0700 |
---|---|---|
committer | Robby Russell <robby@planetargon.com> | 2011-10-10 05:36:23 -0700 |
commit | ebd0523a4a537e98581f3f5be0e161218d7716e9 (patch) | |
tree | 1d385a21ef2179d191bdbc7a0d48b5cc87e0c8e7 | |
parent | 72adfb6cc7bae9ec449f2654038528c359a3c367 (diff) | |
parent | 8287cc177e993aebc8ee0a9f5ee5a1cee6893253 (diff) | |
download | zsh-ebd0523a4a537e98581f3f5be0e161218d7716e9.tar.gz zsh-ebd0523a4a537e98581f3f5be0e161218d7716e9.tar.bz2 zsh-ebd0523a4a537e98581f3f5be0e161218d7716e9.zip |
Merge pull request #626 from nickstenning/upstream
Better cake completion
-rw-r--r-- | plugins/cake/cake.plugin.zsh | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh index f968c71d5..1d0d196ee 100644 --- a/plugins/cake/cake.plugin.zsh +++ b/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
\ No newline at end of file |