build-sys: hook up the hwdb parser to check
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 5 Aug 2016 19:07:41 +0000 (15:07 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 9 Aug 2016 04:42:52 +0000 (00:42 -0400)
Makefile.am
hwdb/parse_hwdb.py [changed mode: 0644->0755]

index bf853c8..d4e3e9a 100644 (file)
@@ -3872,7 +3872,8 @@ TESTS += \
 
 if HAVE_PYTHON
 TESTS += \
-       test/rule-syntax-check.py
+       test/rule-syntax-check.py \
+       hwdb/parse_hwdb.py
 
 if HAVE_SYSV_COMPAT
 TESTS += \
@@ -3924,7 +3925,8 @@ EXTRA_DIST += \
        test/udev-test.pl \
        test/rule-syntax-check.py \
        test/sysv-generator-test.py \
-       test/mocks/fsck
+       test/mocks/fsck \
+       hwdb/parse_hwdb.py
 
 # ------------------------------------------------------------------------------
 ata_id_SOURCES = \
old mode 100644 (file)
new mode 100755 (executable)
index 773513e..99d034b
@@ -1,3 +1,4 @@
+#!/usr/bin/python3
 #  -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
 #
 #  This file is part of systemd.
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
-import sys
-import string
 import functools
+import glob
+import string
+import sys
+import os
 
 try:
     from pyparsing import (Word, White, Literal, ParserElement, Regex,
@@ -29,7 +32,8 @@ try:
                            stringEnd, pythonStyleComment,
                            ParseBaseException)
 except ImportError:
-    sys.exit('pyparsing is not available')
+    print('pyparsing is not available')
+    sys.exit(77)
 
 try:
     from evdev.ecodes import ecodes
@@ -168,7 +172,9 @@ def print_summary(fname, groups):
           ))
 
 if __name__ == '__main__':
-    for fname in sys.argv[1:]:
+    args = sys.argv[1:] or glob.glob(os.path.dirname(sys.argv[0]) + '/[67]0-*.hwdb')
+
+    for fname in args:
         groups = parse(fname)
         print_summary(fname, groups)
         check_match_uniqueness(groups)