Capture output (stdout+stderr) as text, print it if non-empty.
diff --git a/occ.py b/occ.py
index db749c4..69a3211 100644
--- a/occ.py
+++ b/occ.py
@@ -67,9 +67,12 @@
print("Running command %s as user %s..." % (" ".join(args), username))
try:
process = subprocess.Popen(
- args, preexec_fn=change_user(user_uid, user_gid), cwd=os.getcwd(), env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ args, preexec_fn=change_user(user_uid, user_gid), cwd=os.getcwd(), env=env, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT, universal_newlines=True
)
- result = process.communicate(timeout=30)
+ stdout_data, stderr_data = process.communicate(timeout=30)
+ if stdout_data:
+ print(stdout_data)
except FileNotFoundError:
print("Could not find script or executable to run, %s" % args[0])
raise CommandException("Could not find executable '%s'" % args[0], 1)