def run(self, command): with Dir.cd(self.working_dir): self.process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self.path, shell=True, preexec_fn=self._preexec_val()) self.last_command = command ProcessCache.add(self) return self
def run_sync(self, command): command = CrossPlaformCodecs.encode_process_command(command) with Dir.cd(self.working_dir): self.process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self.path, shell=True) (stdout, stderr) = self.process.communicate() self.failed = self.process.returncode == 127 or stderr return (CrossPlaformCodecs.force_decode(stdout), CrossPlaformCodecs.force_decode(stderr))