Exemplo n.º 1
0
    def run(self):
        self.started = time.time()
        tid = gs.begin(DOMAIN,
                       self.message,
                       set_status=False,
                       cancel=self.cancel)
        try:
            try:
                self.p = gs.popen(self.cmd,
                                  shell=self.shell,
                                  stderr=subprocess.STDOUT,
                                  environ=self.env,
                                  cwd=self.cwd,
                                  bufsize=1)

                CommandStdoutReader(self, self.p.stdout).start()
            except Exception as ex:
                self.x = ex
            finally:
                self.rcode = self.p.wait() if self.p else False
        finally:
            gs.end(tid)
            self.ended = time.time()
            self.on_done(self)

            for f in self.done:
                try:
                    f(self)
                except Exception:
                    gs.notice(DOMAIN, gs.traceback())
Exemplo n.º 2
0
def run(cmd=[], shell=False, env={}, cwd=None, input=None):
	out = u""
	err = u""
	exc = None

	try:
		env = fix_env(env)
		shell, cmd = fix_shell_cmd(shell, cmd)
		p = gs.popen(cmd, shell=shell, stderr=subprocess.STDOUT, environ=env, cwd=cwd)
		if input is not None:
			input = gs.astr(input)
		out, _ = p.communicate(input=input)
		out = gs.ustr(out) if out else u''
	except Exception as ex:
		err = u'Error while running %s: %s' % (cmd, gs.traceback())
		exc = ex

	return (out, err, exc)
Exemplo n.º 3
0
def run(cmd=[], shell=False, env={}, cwd=None, input=None):
	out = u""
	err = u""
	exc = None

	try:
		env = fix_env(env)
		shell, cmd = fix_shell_cmd(shell, cmd)
		p = gs.popen(cmd, shell=shell, stderr=subprocess.STDOUT, environ=env, cwd=cwd)
		if input is not None:
			input = gs.astr(input)
		out, _ = p.communicate(input=input)
		out = gs.ustr(out) if out else u''
	except Exception as ex:
		err = u'Error while running %s: %s' % (cmd, gs.traceback())
		exc = ex

	return (out, err, exc)
Exemplo n.º 4
0
	def run(self):
		self.started = time.time()
		tid = gs.begin(DOMAIN, self.message, set_status=False, cancel=self.cancel)
		try:
			try:
				self.p = gs.popen(self.cmd, shell=self.shell, stderr=subprocess.STDOUT,
					environ=self.env, cwd=self.cwd, bufsize=1)

				CommandStdoutReader(self, self.p.stdout).start()
			except Exception as ex:
				self.x = ex
			finally:
				self.rcode = self.p.wait() if self.p else False
		finally:
			gs.end(tid)
			self.ended = time.time()
			self.on_done(self)

			for f in self.done:
				try:
					f(self)
				except Exception:
					gs.notice(DOMAIN, gs.traceback())