def sh(self,cmds, print_msg=True): print('sh') msgStr = [] env = ###dev### compilePopen = subprocess.Popen(cmds,shell=True,stdout=subprocess.PIPE,close_fds=True,stderr=subprocess.STDOUT) returnMsg = '' for line in iter(compilePopen.stdout.readline, b''): line = line.rstrip().decode('utf8') if line.find('ERROR') != -1 or line.find('Err') != -1: msg = '<div style="color: red">'+line+'</div>' elif line.find('WARN') != -1: msg = '<div style="color: #66512c">' + line + '</div>' elif line.find('SUCCESS') != -1: msg = '<div style="color: green">' + line + '</div>' else: msg = line returnMsg = returnMsg + msg + '\n' if print_msg: time_now = time.strftime("%H:%M:%S", time.localtime()) if self.apps.deploying_showTime=='true' else '' self.ws.send(json.dumps({ "progress": "post_deploy", "msg": time_now +' '+ msg, 'ctime': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), 'user': self.task.username })) # result = base.cmds(cmds) stdout, stderr = compilePopen.communicate() returncode = compilePopen.returncode if returncode > 0: result = {"status": "failed", "msg": returnMsg} result = {"status": "succeed", "msg": returnMsg} self.handle_result("msg", result)