aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-08-20 16:02:27 -0700
committerKenny Root <kenny@the-b.org>2015-08-20 16:16:50 -0700
commit30b59b3432344ce6ba2ded960194aa88bd01e030 (patch)
tree6379a12709c2432f9a8066afed6b164f58f08ce6 /scripts
parent78d05826e37144bcb8922e51fa226bd01a3e65d7 (diff)
downloadconnectbot-30b59b3432344ce6ba2ded960194aa88bd01e030.tar.gz
connectbot-30b59b3432344ce6ba2ded960194aa88bd01e030.tar.bz2
connectbot-30b59b3432344ce6ba2ded960194aa88bd01e030.zip
travis: make sure we do not increase lint issues
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/check-lint-count.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/check-lint-count.sh b/scripts/check-lint-count.sh
new file mode 100755
index 0000000..4848e62
--- /dev/null
+++ b/scripts/check-lint-count.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+#
+# Checks the number of lint issues against historical values. Used in
+# Travis CI builds to fail when the number increases by exploiting the
+# caching mechanism.
+
+# This is to prime the system: when I submitted this change, this is the
+# number of lint warnings that existed.
+DEFAULT_NUMBER=207
+
+if [[ $# != 3 || ! -f $1 ]]; then \
+ echo "Usage: $0 <lint.xml file> <historical file> <success file>"
+ exit 1
+elif [[ ! -d $(dirname $3) ]]; then \
+ echo "Error: directory $(dirname $3) does not exist."
+ exit 1
+fi
+
+lint_file="$1"
+historical_file="$2"
+success_file="$3"
+
+xmllint="$(which xmllint)"
+
+if [[ ! -x $xmllint ]]; then \
+ echo "Error: cannot find xmllint"
+ exit 1
+fi
+
+if [[ -f $historical_file ]]; then \
+ historical_count="$(cat $historical_file)"
+else \
+ historical_count=$DEFAULT_NUMBER
+fi
+
+new_count="$($xmllint --xpath 'count(//issue)' "$lint_file")"
+
+if [[ $new_count > $historical_count ]]; then \
+ echo "FAILURE: lint issues increased from $historical_count to $new_count"
+ exit 2
+fi
+
+if [[ $TRAVIS_PULL_REQUEST == false ]]; then \
+ # Okay, we either stayed the same or reduced our number.
+ # Write it out so we can check it next build!
+ echo $new_count > $success_file
+fi