aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/verify_value_string_arrays_are_terminated.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/scripts/verify_value_string_arrays_are_terminated.py b/scripts/verify_value_string_arrays_are_terminated.py
index ad936a5..9f0ad82 100755
--- a/scripts/verify_value_string_arrays_are_terminated.py
+++ b/scripts/verify_value_string_arrays_are_terminated.py
@@ -3,7 +3,7 @@
'''
Usage:
- verify_value_string_arrays_are_terminated.py PATH [PATH [...]]
+ verify_value_string_arrays_are_terminated.py [ROOT_DIR|PATH] [...]
e.g.
libosmocore/contrib/verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
@@ -12,6 +12,7 @@ libosmocore/contrib/verify_value_string_arrays_are_terminated.py $(find . -name
import re
import sys
import codecs
+import os.path
value_string_array_re = re.compile(
r'((\bstruct\s+value_string\b[^{;]*?)\s*=[^{;]*{[^;]*}\s*;)',
@@ -22,7 +23,10 @@ terminator_re = re.compile('{}|{\s*' + members + '(0|NULL)\s*,'
'\s*' + members + '(0|NULL)\s*}')
errors_found = 0
-for f in sys.argv[1:]:
+def check_file(f):
+ global errors_found
+ if not (f.endswith('.h') or f.endswith('.c') or f.endswith('.cpp')):
+ return
arrays = value_string_array_re.findall(codecs.open(f, "r", "utf-8").read())
for array_def, name in arrays:
if not terminator_re.search(array_def):
@@ -30,4 +34,16 @@ for f in sys.argv[1:]:
% (name, f))
errors_found += 1
+args = sys.argv[1:]
+if not args:
+ args = ['.']
+
+for f in args:
+ if os.path.isdir(f):
+ for parent_path, subdirs, files in os.walk(f, None, None):
+ for ff in files:
+ check_file(os.path.join(parent_path, ff))
+ else:
+ check_file(f)
+
sys.exit(errors_found)