summaryrefslogtreecommitdiffstats
path: root/tools/coding-checks.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/coding-checks.sh')
-rw-r--r--tools/coding-checks.sh59
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/coding-checks.sh b/tools/coding-checks.sh
new file mode 100644
index 000000000..4ee909988
--- /dev/null
+++ b/tools/coding-checks.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+# source: https://github.com/openstack/neutron/blob/master/tools/coding-checks.sh
+
+set -eu
+
+usage () {
+ echo "Usage: $0 [OPTION]..."
+ echo "Run Yardstick's coding check(s)"
+ echo ""
+ echo " -Y, --pylint [<basecommit>] Run pylint check on the entire neutron module or just files changed in basecommit (e.g. HEAD~1)"
+ echo " -h, --help Print this usage message"
+ echo
+ exit 0
+}
+
+process_options () {
+ i=1
+ while [ $i -le $# ]; do
+ eval opt=\$$i
+ case $opt in
+ -h|--help) usage;;
+ -Y|--pylint) pylint=1;;
+ *) scriptargs="$scriptargs $opt"
+ esac
+ i=$((i+1))
+ done
+}
+
+run_pylint () {
+ local target="${scriptargs:-all}"
+
+ if [ "$target" = "all" ]; then
+ files="ansible api tests yardstick"
+ else
+ case "$target" in
+ *HEAD*|*HEAD~[0-9]*) files=$(git diff --diff-filter=AM --name-only $target -- "*.py");;
+ *) echo "$target is an unrecognized basecommit"; exit 1;;
+ esac
+ fi
+
+ echo "Running pylint..."
+ echo "You can speed this up by running it on 'HEAD~[0-9]' (e.g. HEAD~0, this change only)..."
+ if [ -n "${files}" ]; then
+ pylint --rcfile=.pylintrc ${files}
+ else
+ echo "No python changes in this commit, pylint check not required."
+ exit 0
+ fi
+}
+
+scriptargs=
+pylint=1
+
+process_options $@
+
+if [ $pylint -eq 1 ]; then
+ run_pylint
+ exit 0
+fi