X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/9648f1b484b81830c1d7ad1efbf16a01d36eb3d2..7018af9cf85b5cc82ac32dff404096afc586d0ea:/autotools/check-python-code diff --git a/autotools/check-python-code b/autotools/check-python-code index 46f6bc0..051ef71 100755 --- a/autotools/check-python-code +++ b/autotools/check-python-code @@ -1,7 +1,7 @@ #!/bin/bash # -# Copyright (C) 2009 Google Inc. +# Copyright (C) 2009, 2011 Google Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +18,21 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. -let problems=0 +set -e + +# Ensure the checks always use the same locale +export LC_ALL=C + +readonly maxlinelen=$(for ((i=0; i<81; ++i)); do echo -n .; done) + +if [[ "${#maxlinelen}" != 81 ]]; then + echo "Internal error: Check for line length is incorrect" >&2 + exit 1 +fi + +# "[...] If the last ARG evaluates to 0, let returns 1; 0 is returned +# otherwise.", hence ignoring the return value. +let problems=0 || : for script; do if grep -n -H -F $'\t' "$script"; then @@ -31,10 +45,29 @@ for script; do echo "Found end-of-line-whitespace in $script" >&2 fi - if [[ "$(wc --max-line-length < "$script")" -gt 80 ]]; then + # FIXME: This will also match "foo.xrange(...)" + if grep -n -H -E '^[^#]*\' "$script"; then + let ++problems + echo "Forbidden function 'xrange' used in $script" >&2 + fi + + if grep -n -H -E -i '#[[:space:]]*(vim|Local[[:space:]]+Variables):' "$script" + then + let ++problems + echo "Found editor-specific settings in $script" >&2 + fi + + if grep -n -H "^$maxlinelen" "$script"; then let ++problems echo "Longest line in $script is longer than 80 characters" >&2 fi + + if grep -n -H -E -i \ + '#.*\bpylint[[:space:]]*:[[:space:]]*disable-msg\b' "$script" + then + let ++problems + echo "Found old-style pylint disable pragma in $script" >&2 + fi done if [[ "$problems" -gt 0 ]]; then