1*13904da8SAndy Fiddaman# 2*13904da8SAndy Fiddaman# This file and its contents are supplied under the terms of the 3*13904da8SAndy Fiddaman# Common Development and Distribution License ("CDDL"), version 1.0. 4*13904da8SAndy Fiddaman# You may only use this file in accordance with the terms of version 5*13904da8SAndy Fiddaman# 1.0 of the CDDL. 6*13904da8SAndy Fiddaman# 7*13904da8SAndy Fiddaman# A full copy of the text of the CDDL should have accompanied this 8*13904da8SAndy Fiddaman# source. A copy of the CDDL is also available via the Internet at 9*13904da8SAndy Fiddaman# http://www.illumos.org/license/CDDL. 10*13904da8SAndy Fiddaman# 11*13904da8SAndy Fiddaman 12*13904da8SAndy Fiddaman# 13*13904da8SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association. 14*13904da8SAndy Fiddaman# 15*13904da8SAndy Fiddaman 16*13904da8SAndy Fiddaman# 17*13904da8SAndy Fiddaman# ShellLint, wrap the 'shcomp -n' tool in a python API 18*13904da8SAndy Fiddaman# 19*13904da8SAndy Fiddaman 20*13904da8SAndy Fiddamanimport sys 21*13904da8SAndy Fiddamanfrom onbld.Checks.ProcessCheck import processcheck 22*13904da8SAndy Fiddaman 23*13904da8SAndy Fiddamandef lint(fh, filename=None, output=sys.stderr, **opts): 24*13904da8SAndy Fiddaman if not filename: 25*13904da8SAndy Fiddaman filename = fh.name 26*13904da8SAndy Fiddaman 27*13904da8SAndy Fiddaman options = ['-n', '/dev/stdin', '/dev/null'] 28*13904da8SAndy Fiddaman 29*13904da8SAndy Fiddaman ret, tmpfile = processcheck('shcomp', options, fh, output) 30*13904da8SAndy Fiddaman 31*13904da8SAndy Fiddaman if tmpfile: 32*13904da8SAndy Fiddaman for line in tmpfile: 33*13904da8SAndy Fiddaman if '`...` obsolete' in line: 34*13904da8SAndy Fiddaman continue 35*13904da8SAndy Fiddaman ret = 1 36*13904da8SAndy Fiddaman 37*13904da8SAndy Fiddaman line = line.replace('/dev/stdin', filename) 38*13904da8SAndy Fiddaman line = line.replace('warning: ', '') 39*13904da8SAndy Fiddaman output.write(line) 40*13904da8SAndy Fiddaman 41*13904da8SAndy Fiddaman tmpfile.close() 42*13904da8SAndy Fiddaman return ret 43