From f41814c6ca264295a3320db9600b7d97d33717ab Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Wed, 26 Aug 2020 20:07:58 +0200 Subject: [PATCH] add csdr version requirement --- owrx/__main__.py | 2 +- owrx/feature.py | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/owrx/__main__.py b/owrx/__main__.py index 2bf3ec9..452de85 100644 --- a/owrx/__main__.py +++ b/owrx/__main__.py @@ -50,7 +50,7 @@ Support and info: https://groups.io/g/openwebrx if not featureDetector.is_available("core"): logger.error( "you are missing required dependencies to run openwebrx. " - "please check that the following core requirements are installed:" + "please check that the following core requirements are installed and up to date:" ) logger.error(", ".join(featureDetector.get_requirements("core"))) return diff --git a/owrx/feature.py b/owrx/feature.py index 73f05a6..fe90b49 100644 --- a/owrx/feature.py +++ b/owrx/feature.py @@ -115,7 +115,20 @@ class FeatureDetector(object): OpenWebRX uses the demodulator and pipeline tools provided by the csdr project. Please check out [the project page on github](https://github.com/jketterl/csdr) for further details and installation instructions. """ - return self.command_is_runnable("csdr") + required_version = LooseVersion("0.16.1") + + csdr_version_regex = re.compile("^csdr version (.*)$") + + try: + process = subprocess.Popen(["csdr", "version"], stderr=subprocess.PIPE) + matches = csdr_version_regex.match(process.stderr.readline().decode()) + if matches is None: + return False + version = LooseVersion(matches.group(1)) + process.wait(1) + return version >= required_version + except FileNotFoundError: + return False def has_nmux(self): """