summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/cake/cake.plugin.zsh
diff options
context:
space:
mode:
authorAditya <bluenerd@protonmail.com>2023-02-27 20:04:56 +0530
committerAditya <bluenerd@protonmail.com>2023-02-27 20:04:56 +0530
commitedc449275b6c04445f58b108ca0937a87c1e8430 (patch)
tree9fd484d58145b616f29a78857cc0b1c8b1c18f05 /oh-my-zsh/plugins/cake/cake.plugin.zsh
parent6f5424ca96c4221ef433f545642669e9c104d0ed (diff)
add zsh
Diffstat (limited to 'oh-my-zsh/plugins/cake/cake.plugin.zsh')
-rw-r--r--oh-my-zsh/plugins/cake/cake.plugin.zsh33
1 files changed, 33 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/cake/cake.plugin.zsh b/oh-my-zsh/plugins/cake/cake.plugin.zsh
new file mode 100644
index 0000000..2370df9
--- /dev/null
+++ b/oh-my-zsh/plugins/cake/cake.plugin.zsh
@@ -0,0 +1,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