You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.4 KiB
82 lines
2.4 KiB
#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
|
|
|