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