From edc449275b6c04445f58b108ca0937a87c1e8430 Mon Sep 17 00:00:00 2001 From: Aditya Date: Mon, 27 Feb 2023 20:04:56 +0530 Subject: add zsh --- oh-my-zsh/plugins/cake/README.md | 15 +++++++++++++++ oh-my-zsh/plugins/cake/cake.plugin.zsh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 oh-my-zsh/plugins/cake/README.md create mode 100644 oh-my-zsh/plugins/cake/cake.plugin.zsh (limited to 'oh-my-zsh/plugins/cake') diff --git a/oh-my-zsh/plugins/cake/README.md b/oh-my-zsh/plugins/cake/README.md new file mode 100644 index 0000000..2c2a280 --- /dev/null +++ b/oh-my-zsh/plugins/cake/README.md @@ -0,0 +1,15 @@ +# Cake + +This plugin provides completion for [CakePHP](https://cakephp.org/). + +To use it add cake to the plugins array in your zshrc file. + +```bash +plugins=(... cake) +``` + +## Note + +This plugin generates a cache file of the cake tasks found, named `.cake_task_cache`, in the current working directory. +It is regenerated when the Cakefile is newer than the cache file. It is advised that you add the cake file to your +`.gitignore` files. 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 -- cgit v1.2.3