1*4ff15898SGordon Ross#! /usr/bin/python
2*4ff15898SGordon Ross#
3*4ff15898SGordon Ross# This file and its contents are supplied under the terms of the
4*4ff15898SGordon Ross# Common Development and Distribution License ("CDDL"), version 1.0.
5*4ff15898SGordon Ross# You may only use this file in accordance with the terms of version
6*4ff15898SGordon Ross# 1.0 of the CDDL.
7*4ff15898SGordon Ross#
8*4ff15898SGordon Ross# A full copy of the text of the CDDL should have accompanied this
9*4ff15898SGordon Ross# source.  A copy of the CDDL is also available via the Internet at
10*4ff15898SGordon Ross# http://www.illumos.org/license/CDDL.
11*4ff15898SGordon Ross#
12*4ff15898SGordon Ross
13*4ff15898SGordon Ross#
14*4ff15898SGordon Ross# Copyright 2018 Gordon Ross <gordon.w.ross@gmail.com>
15*4ff15898SGordon Ross#
16*4ff15898SGordon Ross
17*4ff15898SGordon Ross#
18*4ff15898SGordon Ross# Check file for whitespace issues
19*4ff15898SGordon Ross# (space tab, trailing space)
20*4ff15898SGordon Ross#
21*4ff15898SGordon Ross
22*4ff15898SGordon Ross
23*4ff15898SGordon Rossimport time, re, sys
24*4ff15898SGordon Ross
25*4ff15898SGordon RossstMsg = 'space tab sequences'
26*4ff15898SGordon RosstwsMsg = 'has trailing spaces'
27*4ff15898SGordon Ross
28*4ff15898SGordon Rossdef err(stream, fname, lineno, msg):
29*4ff15898SGordon Ross	stream.write("%s:%d: %s\n" % (fname, lineno, msg))
30*4ff15898SGordon Ross
31*4ff15898SGordon Rossdef wscheck(fh, output=sys.stderr):
32*4ff15898SGordon Ross	lineno = 1
33*4ff15898SGordon Ross	ret = 0
34*4ff15898SGordon Ross
35*4ff15898SGordon Ross	fname = fh.name
36*4ff15898SGordon Ross
37*4ff15898SGordon Ross	for line in fh:
38*4ff15898SGordon Ross		if re.search(r' \t', line):
39*4ff15898SGordon Ross			err(output, fname, lineno, stMsg);
40*4ff15898SGordon Ross			ret = 1
41*4ff15898SGordon Ross		if re.search(r'[ \t]$', line):
42*4ff15898SGordon Ross			err(output, fname, lineno, twsMsg);
43*4ff15898SGordon Ross			ret = 1
44*4ff15898SGordon Ross		lineno += 1
45*4ff15898SGordon Ross
46*4ff15898SGordon Ross	return ret
47