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. | 
