diff options
author | Ramses Ladlani <ramses.ladlani@fishingcactus.com> | 2015-09-21 08:49:18 +0200 |
---|---|---|
committer | Ramses Ladlani <ramses.ladlani@fishingcactus.com> | 2015-09-21 08:49:18 +0200 |
commit | 7576f856b915e6e02c5990cd7e221d7b9efbe44a (patch) | |
tree | be3fe162edbc04946eea014a3612280d4909dc1e /plugins/codeclimate | |
parent | 6e0fcf803fe00445c97861360d1b0806d8cc56b8 (diff) | |
parent | 918d26e7dbcb907e673df24242c9688cd89019b9 (diff) | |
download | zsh-7576f856b915e6e02c5990cd7e221d7b9efbe44a.tar.gz zsh-7576f856b915e6e02c5990cd7e221d7b9efbe44a.tar.bz2 zsh-7576f856b915e6e02c5990cd7e221d7b9efbe44a.zip |
Merge remote-tracking branch 'robyrussel/master' into fix-atom_plugin_for_cygwin
Discarded all previous changes to atom plugin for easier review in next commit.
Diffstat (limited to 'plugins/codeclimate')
-rw-r--r-- | plugins/codeclimate/_codeclimate | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/plugins/codeclimate/_codeclimate b/plugins/codeclimate/_codeclimate new file mode 100644 index 000000000..fd2536a34 --- /dev/null +++ b/plugins/codeclimate/_codeclimate @@ -0,0 +1,82 @@ +#compdef codeclimate + +_codeclimate_all_engines() { + engines_all=(`codeclimate engines:list | tail -n +2 | gawk '{ print $2 }' | gawk -F: '{ print $1 }'`) +} + +_codeclimate_installed_engines() { + _codeclimate_all_engines + + engines_installed=() + + if [ -e .codeclimate.yml ] + then + for engine in $engines_all + do + if grep -q $engine ".codeclimate.yml" + then + engines_installed+=$engine + fi + done + fi +} + +_codeclimate_not_installed_engines() { + _codeclimate_all_engines + + engines_not_installed=() + + if [ -e .codeclimate.yml ] + then + for engine in $engines_all + do + if ! grep -q $engine ".codeclimate.yml" + then + engines_not_installed+=$engine + fi + done + fi +} + +local curcontext="$curcontext" state line ret=1 +local expl +local -a engines_all engines_installed engines_not_installed + +_arguments \ + '1: :->cmds' \ + '*:: :->args' && ret=0 + +case $state in + cmds) + _values "bundle command" \ + "analyze[Analyze all relevant files in the current working directory]" \ + "console[Start an interactive session providing access to the classes within the CLI]" \ + "engines\:disable[Prevents the engine from being used in this project]" \ + "engines\:enable[This engine will be run the next time your project is analyzed]" \ + "engines\:install[Compares the list of engines in your .codeclimate.yml file to those that are currently installed, then installs any missing engines]" \ + "engines\:list[Lists all available engines in the Code Climate Docker Hub]" \ + "engines\:remove[Removes an engine from your .codeclimate.yml file]" \ + "help[Displays a list of commands that can be passed to the Code Climate CLI]" \ + "init[Generates a new .codeclimate.yml file in the current working directory]" \ + "validate-config[Validates the .codeclimate.yml file in the current working directory]" \ + "version[Displays the current version of the Code Climate CLI]" + ret=0 + ;; + args) + case $line[1] in + engines:enable) + _codeclimate_not_installed_engines + _wanted engines_not_installed expl 'not installed engines' compadd -a engines_not_installed ;; + engines:disable|engines:remove) + _codeclimate_installed_engines + _wanted engines_installed expl 'installed engines' compadd -a engines_installed ;; + analyze) + _arguments \ + '-f:Output Format:(text json)' + ret=0 + ;; + esac + ;; +esac + +return ret |