From 154397b92ca1964c0581ab4147dbc570d7175681 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 28 Jun 2018 13:00:54 -0400 Subject: test: Add a whitespace check to the travis build Signed-off-by: Kevin O'Connor --- scripts/check_whitespace.py | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 scripts/check_whitespace.py (limited to 'scripts/check_whitespace.py') diff --git a/scripts/check_whitespace.py b/scripts/check_whitespace.py new file mode 100755 index 00000000..6f32c24f --- /dev/null +++ b/scripts/check_whitespace.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python2 +# Check files for whitespace problems +# +# Copyright (C) 2018 Kevin O'Connor +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import sys, os.path + +HaveError = False + +def report_error(filename, lineno, msg): + global HaveError + HaveError = True + sys.stderr.write("Whitespace error in file %s on line %d: %s\n" % ( + filename, lineno + 1, msg)) + +def check_file(filename): + # Open and read file + try: + f = open(filename, 'rb') + data = f.read() + f.close() + except IOError: + return + if not data: + # Empty files are okay + return + # Do checks + lineno = 0 + for lineno, line in enumerate(data.split('\n')): + # Check for control characters + for c in line: + oc = ord(c) + if oc < 32: + char_name = repr(c) + if oc == 9: + if os.path.basename(filename).lower() == 'makefile': + continue + char_name = 'tab' + report_error(filename, lineno, "Invalid %s character" % ( + char_name,)) + break + # Check for trailing space + if line.endswith(' '): + report_error(filename, lineno, "Trailing space") + if not data.endswith('\n'): + report_error(filename, lineno, "No newline at end of file") + if data.endswith('\n\n'): + report_error(filename, lineno, "Extra newlines at end of file") + +def main(): + files = sys.argv[1:] + for filename in files: + check_file(filename) + if HaveError: + sys.exit(-1) + +if __name__ == '__main__': + main() -- cgit v1.2.3-70-g09d2