From 589908a77e5c7b0ddeaa4a1149e3453b05fe97a8 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Wed, 8 Mar 2023 01:23:25 +0300 Subject: [PATCH] mc: Separate stdout and stderr; use `.communicate()` Check return code and stderr. --- bin/mc_type.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bin/mc_type.py b/bin/mc_type.py index 8292646..dbcf94d 100755 --- a/bin/mc_type.py +++ b/bin/mc_type.py @@ -7,12 +7,13 @@ assert mc in ['/usr/local/bin/mc', '/usr/bin/mc'] mc = subprocess.Popen([mc, '--version'], stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) -mc.wait() -mc_version = mc.stdout.readline() -mc.stdout.read() -mc.stdout.close() + stderr=subprocess.PIPE, + close_fds=True, env={}) +stdout, stderr = mc.communicate() +if mc.returncode or stderr: + sys.exit('Error reading mc version: (%d) %s' % (mc.returncode, stderr)) +mc_version = stdout.split('\n')[0] if mc_version.startswith('Midnight Commander'): mc_version = mc_version.split()[2] elif mc_version.startswith('GNU Midnight Commander') or \ -- 2.39.2