From c39a436ac06cf64d2c612877fef6ef8af23d8255 Mon Sep 17 00:00:00 2001 From: Nick Kraus Date: Thu, 9 May 2024 12:57:25 -0400 Subject: [PATCH] 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 --- scripts/west_commands/runners/intel_cyclonev.py | 9 +++++---- scripts/west_commands/runners/openocd.py | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/scripts/west_commands/runners/intel_cyclonev.py b/scripts/west_commands/runners/intel_cyclonev.py index c6bfb65eeef6c..c14e20b967f93 100644 --- a/scripts/west_commands/runners/intel_cyclonev.py +++ b/scripts/west_commands/runners/intel_cyclonev.py @@ -194,13 +194,14 @@ def read_version(self): out = self.check_output([self.openocd_cmd[0], '--version'], stderr=subprocess.STDOUT).decode() - return out.split('\n')[0] + version_match = re.search(r"Open On-Chip Debugger (\d+.\d+.\d+)", out) + version = version_match.group(1).split('.') + + return [self.to_num(i) for i in version] def supports_thread_info(self): # Zephyr rtos was introduced after 0.11.0 - version_str = self.read_version().split(' ')[3] - version = version_str.split('.') - (major, minor, rev) = [self.to_num(i) for i in version] + (major, minor, rev) = self.read_version() return (major, minor, rev) > (0, 11, 0) def do_run(self, command, **kwargs): diff --git a/scripts/west_commands/runners/openocd.py b/scripts/west_commands/runners/openocd.py index 3377705687971..4120bde0822fb 100644 --- a/scripts/west_commands/runners/openocd.py +++ b/scripts/west_commands/runners/openocd.py @@ -203,13 +203,14 @@ def read_version(self): out = self.check_output([self.openocd_cmd[0], '--version'], stderr=subprocess.STDOUT).decode() - return out.split('\n')[0] + version_match = re.search(r"Open On-Chip Debugger (\d+.\d+.\d+)", out) + version = version_match.group(1).split('.') + + return [self.to_num(i) for i in version] def supports_thread_info(self): # Zephyr rtos was introduced after 0.11.0 - version_str = self.read_version().split(' ')[3] - version = version_str.split('.') - (major, minor, rev) = [self.to_num(i) for i in version] + (major, minor, rev) = self.read_version() return (major, minor, rev) > (0, 11, 0) def do_run(self, command, **kwargs):