summaryrefslogtreecommitdiff
path: root/usr/src/tools/onbld/Checks/ShellLint.py
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/tools/onbld/Checks/ShellLint.py')
-rw-r--r--usr/src/tools/onbld/Checks/ShellLint.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/usr/src/tools/onbld/Checks/ShellLint.py b/usr/src/tools/onbld/Checks/ShellLint.py
new file mode 100644
index 0000000000..06d06f92c8
--- /dev/null
+++ b/usr/src/tools/onbld/Checks/ShellLint.py
@@ -0,0 +1,42 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
+#
+
+#
+# ShellLint, wrap the 'shcomp -n' tool in a python API
+#
+
+import sys
+from onbld.Checks.ProcessCheck import processcheck
+
+def lint(fh, filename=None, output=sys.stderr, **opts):
+ if not filename:
+ filename = fh.name
+
+ options = ['-n', '/dev/stdin', '/dev/null']
+
+ ret, tmpfile = processcheck('shcomp', options, fh, output)
+
+ if tmpfile:
+ for line in tmpfile:
+ if '`...` obsolete' in line:
+ continue
+ ret = 1
+
+ line = line.replace('/dev/stdin', filename)
+ line = line.replace('warning: ', '')
+ output.write(line)
+
+ tmpfile.close()
+ return ret