Commits

Markus Zapke-Gründemann committed 58449c5

Initial commit.

  • Participants

Comments (0)

Files changed (2)

+Copyright (c) 2013, Markus Zapke-Gründemann
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+Neither the name of the authors nor the names of its contributors may be used
+to endorse or promote products derived from this software without specific
+prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+#!/bin/sh
+#
+# Python Code Analyzer
+#
+# Copyright Markus Zapke-Gründemann <markus@keimlink.de>, All Rights Reserved
+#
+
+if [ ! $1 ]; then
+    echo "Usage: $0 directory"
+    exit 1
+fi
+
+EXCLUDE_ACK='(?!.*migrations|.*docs|.*run(\-)*tests\.py)'
+EXCLUDE_PEP8='migrations,docs,run-tests.py,runtests.py'
+
+SLOC=$(sloccount --details $1 | ack "^[1-9]\d*(?=.*py|)$EXCLUDE_ACK" -o | paste -sd+ - | bc -l)
+echo "Python SLOC"
+echo "\t$SLOC"
+
+echo
+echo "PEP8 violations"
+pep8 --exclude=$EXCLUDE_PEP8 --statistics $1
+
+VIOLATIONS=$(pep8 --exclude=$EXCLUDE_PEP8 $1 | ack -oc 'E\d+')
+echo
+echo "Total PEP8 violations"
+echo "\t$VIOLATIONS"
+
+RATING=$(echo "$SLOC/$VIOLATIONS" | bc)
+if [ "$RATING" -ge "10" ]; then
+    SMILIE=':)'
+else
+    SMILIE=':('
+fi
+
+printf "\nThis means there is a PEP8 violation on every %dth SLOC. %s\n" $RATING $SMILIE