mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-22 13:50:09 +00:00
Merge pull request #4310 from ablyler/add-codeclimate-plugin
Add codeclimate autocomplete plugin
This commit is contained in:
commit
4d65dd2404
1 changed files with 82 additions and 0 deletions
82
plugins/codeclimate/_codeclimate
Normal file
82
plugins/codeclimate/_codeclimate
Normal file
|
@ -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
|
Loading…
Reference in a new issue