Skip to content

Commit 29084dc

Browse files
nick-krausaescolar
authored andcommitted
west: Regex based version finding in OpenOCD runner
Previous OpenOCD version finding would fail when additional tokens were prepended to the 'openocd --version' output, as happens with some third- party OpenOCD repackages (xPack for one). Fixes: #71955 Signed-off-by: Nick Kraus <[email protected]>
1 parent 662b980 commit 29084dc

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

scripts/west_commands/runners/intel_cyclonev.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,14 @@ def read_version(self):
194194
out = self.check_output([self.openocd_cmd[0], '--version'],
195195
stderr=subprocess.STDOUT).decode()
196196

197-
return out.split('\n')[0]
197+
version_match = re.search(r"Open On-Chip Debugger (\d+.\d+.\d+)", out)
198+
version = version_match.group(1).split('.')
199+
200+
return [self.to_num(i) for i in version]
198201

199202
def supports_thread_info(self):
200203
# Zephyr rtos was introduced after 0.11.0
201-
version_str = self.read_version().split(' ')[3]
202-
version = version_str.split('.')
203-
(major, minor, rev) = [self.to_num(i) for i in version]
204+
(major, minor, rev) = self.read_version()
204205
return (major, minor, rev) > (0, 11, 0)
205206

206207
def do_run(self, command, **kwargs):

scripts/west_commands/runners/openocd.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,13 +212,14 @@ def read_version(self):
212212
out = self.check_output([self.openocd_cmd[0], '--version'],
213213
stderr=subprocess.STDOUT).decode()
214214

215-
return out.split('\n')[0]
215+
version_match = re.search(r"Open On-Chip Debugger (\d+.\d+.\d+)", out)
216+
version = version_match.group(1).split('.')
217+
218+
return [self.to_num(i) for i in version]
216219

217220
def supports_thread_info(self):
218221
# Zephyr rtos was introduced after 0.11.0
219-
version_str = self.read_version().split(' ')[3]
220-
version = version_str.split('.')
221-
(major, minor, rev) = [self.to_num(i) for i in version]
222+
(major, minor, rev) = self.read_version()
222223
return (major, minor, rev) > (0, 11, 0)
223224

224225
def do_run(self, command, **kwargs):

0 commit comments

Comments
 (0)