import subprocess
if not hasattr(subprocess, 'check_output'): # exists in newer python versions
def __checkOutput(*popenargs, **kwargs):
process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
output, unusedErr = process.communicate()
retcode = process.poll()
if retcode:
cmd = kwargs.get("args")
if cmd is None:
cmd = popenargs[0]
errorMsg = "Subprocess error: retcode=%s, cmd=%s, output=%s" % (retcode, cmd, output)
raise Exception(errorMsg)
return output
subprocess.check_output = __checkOutput
subprocess.check_output(["echo", "Hello World!"])
aW1wb3J0IHN1YnByb2Nlc3MKCmlmIG5vdCBoYXNhdHRyKHN1YnByb2Nlc3MsICdjaGVja19vdXRwdXQnKTogIyBleGlzdHMgaW4gbmV3ZXIgcHl0aG9uIHZlcnNpb25zCiAgICAgICAgZGVmIF9fY2hlY2tPdXRwdXQoKnBvcGVuYXJncywgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgKnBvcGVuYXJncywgKiprd2FyZ3MpCiAgICAgICAgICAgICAgICBvdXRwdXQsIHVudXNlZEVyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQogICAgICAgICAgICAgICAgcmV0Y29kZSA9IHByb2Nlc3MucG9sbCgpCiAgICAgICAgICAgICAgICBpZiByZXRjb2RlOgogICAgICAgICAgICAgICAgICAgICAgICBjbWQgPSBrd2FyZ3MuZ2V0KCJhcmdzIikKICAgICAgICAgICAgICAgICAgICAgICAgaWYgY21kIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kID0gcG9wZW5hcmdzWzBdCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnID0gIlN1YnByb2Nlc3MgZXJyb3I6IHJldGNvZGU9JXMsIGNtZD0lcywgb3V0cHV0PSVzIiAlIChyZXRjb2RlLCBjbWQsIG91dHB1dCkKICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKGVycm9yTXNnKQogICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dAoKICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCA9IF9fY2hlY2tPdXRwdXQKCnN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsiZWNobyIsICJIZWxsbyBXb3JsZCEiXSkK