Add in a helper that is useful for running pep8/pylint
This commit is contained in:
		
							
								
								
									
										53
									
								
								checks.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										53
									
								
								checks.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -u
 | 
			
		||||
 | 
			
		||||
function find_src {
 | 
			
		||||
  files=`find bin cloudinit -type f | grep "py\$"`
 | 
			
		||||
  echo $files
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function run_pep8 {
 | 
			
		||||
  echo "Running pep8 ..."
 | 
			
		||||
  files=$(find_src)
 | 
			
		||||
  ignores="E202,E501"
 | 
			
		||||
  output_filename="pep8.log"
 | 
			
		||||
  opts="--ignore=$ignores --repeat"
 | 
			
		||||
  pep8 ${opts} ${files} 2>&1 > $output_filename
 | 
			
		||||
  if [ "$?" -ne "0" ]; then
 | 
			
		||||
    echo "Some badness was found!"
 | 
			
		||||
  fi
 | 
			
		||||
  echo "Check '$output_filename' for a full report."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function run_pylint {
 | 
			
		||||
  echo "Running pylint ..."
 | 
			
		||||
  opts="--rcfile=pylintrc --output-format=parseable"
 | 
			
		||||
  files=$(find_src)
 | 
			
		||||
  output_filename="pylint.log"
 | 
			
		||||
  pylint ${opts} ${files} 2>&1 > $output_filename
 | 
			
		||||
  if [ "$?" -eq "1" ]; then
 | 
			
		||||
    # pylint --long-help
 | 
			
		||||
    # * 0 if everything went fine
 | 
			
		||||
    # * 1 if a fatal message was issued
 | 
			
		||||
    # * 2 if an error message was issued
 | 
			
		||||
    # * 4 if a warning message was issued
 | 
			
		||||
    # * 8 if a refactor message was issued
 | 
			
		||||
    # * 16 if a convention message was issued
 | 
			
		||||
    # * 32 on usage error
 | 
			
		||||
    echo "A fatal pylint error occurred!"
 | 
			
		||||
  else
 | 
			
		||||
    if [ "$?" -eq "0" ]; then
 | 
			
		||||
      echo "Your code is perfect you code master!"
 | 
			
		||||
    else
 | 
			
		||||
      echo "You are not yet a code master."
 | 
			
		||||
      grep -i "Your code" $output_filename
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
  echo "Check '$output_filename' for a full report."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
run_pep8
 | 
			
		||||
run_pylint
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										42
									
								
								pylintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								pylintrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
# The format of this file isn't really documented; just use --generate-rcfile
 | 
			
		||||
 | 
			
		||||
[Master]
 | 
			
		||||
 | 
			
		||||
[Messages Control]
 | 
			
		||||
 | 
			
		||||
# http://pylint-messages.wikidot.com/all-codes
 | 
			
		||||
# NOTE(justinsb): We might want to have a 2nd strict pylintrc in future
 | 
			
		||||
# C0111: Don't require docstrings on every method
 | 
			
		||||
# R0912: Too many branches (huh)
 | 
			
		||||
# R0914: Too many local variables is odd.
 | 
			
		||||
# W0142: *args and **kwargs are fine.
 | 
			
		||||
# W0511: TODOs in code comments are fine.
 | 
			
		||||
# W0613: Unused argument '??' should be ok (they are useful sometimes to know intention of variable)
 | 
			
		||||
# W0622: Redefining id is fine.
 | 
			
		||||
disable=C0111,W0142,W0622,C0301,R0902,R0201,R0914,W0613,R0912,R0801
 | 
			
		||||
 | 
			
		||||
[Basic]
 | 
			
		||||
 | 
			
		||||
# Variable names can be 1 to 31 characters long, with lowercase and underscores
 | 
			
		||||
variable-rgx=[a-z_][a-z0-9_]{0,30}$
 | 
			
		||||
 | 
			
		||||
# Argument names can be 2 to 31 characters long, with lowercase and underscores
 | 
			
		||||
argument-rgx=[a-z_][a-z0-9_]{1,30}$
 | 
			
		||||
 | 
			
		||||
# Method names should be at least 3 characters long
 | 
			
		||||
# and be lowercased with underscores
 | 
			
		||||
method-rgx=([a-z_][a-z0-9_]{2,50}|setUp|tearDown)$
 | 
			
		||||
 | 
			
		||||
# Don't require docstrings on tests.
 | 
			
		||||
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
 | 
			
		||||
 | 
			
		||||
[Design]
 | 
			
		||||
 | 
			
		||||
max-public-methods=100
 | 
			
		||||
min-public-methods=0
 | 
			
		||||
max-args=6
 | 
			
		||||
 | 
			
		||||
[Variables]
 | 
			
		||||
 | 
			
		||||
# List of additional names supposed to be defined in builtins. Remember that
 | 
			
		||||
# you should avoid to define new builtins when possible.
 | 
			
		||||
		Reference in New Issue
	
	Block a user