diff options
-rwxr-xr-x | checks.sh | 53 | ||||
-rw-r--r-- | pylintrc | 42 |
2 files changed, 95 insertions, 0 deletions
diff --git a/checks.sh b/checks.sh new file mode 100755 index 00000000..f54cad36 --- /dev/null +++ b/checks.sh @@ -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 + diff --git a/pylintrc b/pylintrc new file mode 100644 index 00000000..a7447a19 --- /dev/null +++ b/pylintrc @@ -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. |