83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #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
 |