-#! /usr/bin/env python
+#! /usr/bin/env python3
import sys, subprocess
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))
+if not isinstance(stdout, type('')):
+ stdout = stdout.decode()
+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 \
mc_version.startswith('The Midnight Commander'):
mc_version = mc_version.split()[3]
else:
- raise ValueError('Unknown mc version')
+ sys.exit('Unknown mc version')
+
if '.' in mc_version:
major, minor = [int(v) for v in mc_version.split('.')[:2]]
if major < 4:
- print 'old'
+ print('old')
elif (major == 4) and (minor < 6):
- print 'old'
+ print('old')
else:
- print 'new'
+ print('new')
else:
- print 'new'
+ print('new')