<p>Neels Hofmeyr has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9544">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">verify_value_string_arrays_are_terminated.py: allow dir args and no args<br><br>So far we call with a $(find . -name "*.[hc]") argument list, which might<br>become too long at some point. Rather include dir walking in the script itself<br>and allow passing dir arguments as well.<br><br>This is backwards compatible, calling with above file args still works.<br><br>Change-Id: I36456383906b6295c798b82aa131dda21f8efc02<br>---<br>M scripts/verify_value_string_arrays_are_terminated.py<br>1 file changed, 18 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/44/9544/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/scripts/verify_value_string_arrays_are_terminated.py b/scripts/verify_value_string_arrays_are_terminated.py</span><br><span>index ad936a5..9f0ad82 100755</span><br><span>--- a/scripts/verify_value_string_arrays_are_terminated.py</span><br><span>+++ b/scripts/verify_value_string_arrays_are_terminated.py</span><br><span>@@ -3,7 +3,7 @@</span><br><span> </span><br><span> '''</span><br><span> Usage:</span><br><span style="color: hsl(0, 100%, 40%);">-  verify_value_string_arrays_are_terminated.py PATH [PATH [...]]</span><br><span style="color: hsl(120, 100%, 40%);">+  verify_value_string_arrays_are_terminated.py [ROOT_DIR|PATH] [...]</span><br><span> </span><br><span> e.g.</span><br><span> libosmocore/contrib/verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")</span><br><span>@@ -12,6 +12,7 @@</span><br><span> import re</span><br><span> import sys</span><br><span> import codecs</span><br><span style="color: hsl(120, 100%, 40%);">+import os.path</span><br><span> </span><br><span> value_string_array_re = re.compile(</span><br><span>   r'((\bstruct\s+value_string\b[^{;]*?)\s*=[^{;]*{[^;]*}\s*;)',</span><br><span>@@ -22,7 +23,10 @@</span><br><span>                            '\s*' + members + '(0|NULL)\s*}')</span><br><span> errors_found = 0</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-for f in sys.argv[1:]:</span><br><span style="color: hsl(120, 100%, 40%);">+def check_file(f):</span><br><span style="color: hsl(120, 100%, 40%);">+  global errors_found</span><br><span style="color: hsl(120, 100%, 40%);">+  if not (f.endswith('.h') or f.endswith('.c') or f.endswith('.cpp')):</span><br><span style="color: hsl(120, 100%, 40%);">+    return</span><br><span>   arrays = value_string_array_re.findall(codecs.open(f, "r", "utf-8").read())</span><br><span>   for array_def, name in arrays:</span><br><span>     if not terminator_re.search(array_def):</span><br><span>@@ -30,4 +34,16 @@</span><br><span>             % (name, f))</span><br><span>       errors_found += 1</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+args = sys.argv[1:]</span><br><span style="color: hsl(120, 100%, 40%);">+if not args:</span><br><span style="color: hsl(120, 100%, 40%);">+  args = ['.']</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+for f in args:</span><br><span style="color: hsl(120, 100%, 40%);">+  if os.path.isdir(f):</span><br><span style="color: hsl(120, 100%, 40%);">+    for parent_path, subdirs, files in os.walk(f, None, None):</span><br><span style="color: hsl(120, 100%, 40%);">+      for ff in files:</span><br><span style="color: hsl(120, 100%, 40%);">+        check_file(os.path.join(parent_path, ff))</span><br><span style="color: hsl(120, 100%, 40%);">+  else:</span><br><span style="color: hsl(120, 100%, 40%);">+        check_file(f)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> sys.exit(errors_found)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9544">change 9544</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/9544"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ci </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I36456383906b6295c798b82aa131dda21f8efc02 </div>
<div style="display:none"> Gerrit-Change-Number: 9544 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>