Python subprocess.Popen() Examples
The following are 30 code examples for showing how to use subprocess.Popen(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
You may check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
subprocess
, or try the search function
.
Example 1
Project: aegea Author: kislyuk File: test.py License: Apache License 2.0 | 7 votes |
def call(self, cmd, **kwargs): print('Running "{}"'.format(cmd), file=sys.stderr) expect = kwargs.pop("expect", [dict(return_codes=[os.EX_OK], stdout=None, stderr=None)]) process = subprocess.Popen(cmd, stdin=kwargs.get("stdin", subprocess.PIPE), stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs) out, err = process.communicate() return_code = process.poll() out = out.decode(sys.stdin.encoding) err = err.decode(sys.stdin.encoding) def match(return_code, out, err, expected): exit_ok = return_code in expected["return_codes"] stdout_ok = re.search(expected.get("stdout") or "", out) stderr_ok = re.search(expected.get("stderr") or "", err) return exit_ok and stdout_ok and stderr_ok if not any(match(return_code, out, err, exp) for exp in expect): print(err) e = subprocess.CalledProcessError(return_code, cmd, output=out) e.stdout, e.stderr = out, err raise e return self.SubprocessResult(out, err, return_code)
Example 2
Project: BASS Author: Cisco-Talos File: core.py License: GNU General Public License v2.0 | 7 votes |
def get_num_triggering_samples(signature, samples): """ Get number of samples triggering ClamAV signature _signature_. :param signature: A dictionary with keys 'type' for the signature type and 'signature' for the signature string. :param samples: A list of sample paths to scan. :returns: The number of samples triggering this signature. """ handle, temp_sig = tempfile.mkstemp(suffix = "." + signature["type"]) try: with os.fdopen(handle, "w") as f: f.write(signature["signature"]) proc_clamscan = subprocess.Popen(["clamscan", "-d", temp_sig, "--no-summary", "--infected"] + samples, stdout = subprocess.PIPE, stderr = subprocess.PIPE) stdout, stderr = proc_clamscan.communicate() if not stdout: return 0 else: return len(stdout.strip().split("\n")) finally: os.unlink(temp_sig)
Example 3
Project: multibootusb Author: mbusb File: osdriver.py License: GNU General Public License v2.0 | 7 votes |
def dd_iso_image(self, input_, output, gui_update, status_update): ''' Implementation for OS that use dd to write the iso image. ''' in_file_size = os.path.getsize(input_) cmd = [self.dd_exe, 'if=' + input_, 'of=' + self.physical_disk(output), 'bs=1M'] self.dd_iso_image_add_args(cmd, input_, output) kw_args = { 'stdout' : subprocess.PIPE, 'stderr' : subprocess.PIPE, 'shell' : False, } self.add_dd_iso_image_popen_args(kw_args) self.dd_iso_image_prepare(input, output, status_update) log('Executing => ' + str(cmd)) dd_process = subprocess.Popen(cmd, **kw_args) output_q = queue.Queue() while dd_process.poll() is None: self.dd_iso_image_readoutput(dd_process, gui_update, in_file_size, output_q) output_lines = [output_q.get() for i in range(output_q.qsize())] for l in output_lines: log('dd: ' + l) return self.dd_iso_image_interpret_result( dd_process.returncode, output_lines)
Example 4
Project: svviz Author: svviz File: alignproc.py License: MIT License | 6 votes |
def alignProcWrapper(ref, seq): cmd = "python {} {} {}".format( os.path.realpath(__file__), ref, seq) proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = proc.communicate() if proc.returncode != 0: return None fields = out.split() strand = fields[0].decode() aln = Aln(int(fields[1]), int(fields[2]), fields[3].decode(), int(fields[4]), int(fields[5])) return strand, aln
Example 5
Project: EDeN Author: fabriziocosta File: example_restart_python.py License: MIT License | 6 votes |
def main(): env = os.environ.copy() # in case the PYTHONHASHSEED was not set, set to 0 to denote # that hash randomization should be disabled and # restart python for the changes to take effect if 'PYTHONHASHSEED' not in env: env['PYTHONHASHSEED'] = "0" proc = subprocess.Popen([sys.executable] + sys.argv, env=env) proc.communicate() exit(proc.returncode) # check if hash has been properly de-randomized in python 3 # by comparing hash of magic tuple h = hash(eden.__magic__) assert h == eden.__magic_py2hash__ or h == eden.__magic_py3hash__, 'Unexpected hash value: "{}". Please check if python 3 hash normalization is disabled by setting shell variable PYTHONHASHSEED=0.'.format(h) # run program and exit print("This is the magic python hash restart script.") exit(0)
Example 6
Project: EDeN Author: fabriziocosta File: setup.py License: MIT License | 6 votes |
def update_version_py(): if not os.path.isdir(".git"): print("This does not appear to be a Git repository.") return try: # p = subprocess.Popen(["git", "describe","--tags", "--always"], # stdout=subprocess.PIPE) p = subprocess.Popen("git rev-list HEAD --count".split(), stdout=subprocess.PIPE) except EnvironmentError: print("unable to run git, leaving eden/_version.py alone") return stdout = p.communicate()[0] if p.returncode != 0: print("unable to run git, leaving eden/_version.py alone") return ver = "0.3."+stdout.strip() # ver = str(int(ver,16)) # pypi doesnt like base 16 f = open("eden/_version.py", "w") f.write(VERSION_PY % ver) f.close() print("set eden/_version.py to '%s'" % ver)
Example 7
Project: Att-ChemdNER Author: lingluodlut File: utils.py License: Apache License 2.0 | 6 votes |
def get_perf(filename): ''' run conlleval.pl perl script to obtain precision/recall and F1 score ''' _conlleval = PREFIX + 'conlleval' if not isfile(_conlleval): #download('http://www-etud.iro.umontreal.ca/~mesnilgr/atis/conlleval.pl') os.system('wget https://www.comp.nus.edu.sg/%7Ekanmy/courses/practicalNLP_2008/packages/conlleval.pl') chmod('conlleval.pl', stat.S_IRWXU) # give the execute permissions out = [] proc = subprocess.Popen(["perl", _conlleval], stdin=subprocess.PIPE, stdout=subprocess.PIPE) stdout, _ = proc.communicate(open(filename).read()) for line in stdout.split('\n'): if 'accuracy' in line: out = line.split() break # out = ['accuracy:', '16.26%;', 'precision:', '0.00%;', 'recall:', '0.00%;', 'FB1:', '0.00'] precision = float(out[3][:-2]) recall = float(out[5][:-2]) f1score = float(out[7]) return {'p':precision, 'r':recall, 'f1':f1score}
Example 8
Project: kaldi-python-io Author: funcwj File: inst.py License: Apache License 2.0 | 6 votes |
def pipe_fopen(command, mode, background=True): if mode not in ["rb", "r"]: raise RuntimeError("Now only support input from pipe") p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) def background_command_waiter(command, p): p.wait() if p.returncode != 0: warnings.warn("Command \"{0}\" exited with status {1}".format( command, p.returncode)) _thread.interrupt_main() if background: thread = threading.Thread(target=background_command_waiter, args=(command, p)) # exits abnormally if main thread is terminated . thread.daemon = True thread.start() else: background_command_waiter(command, p) return p.stdout
Example 9
Project: mmdetection Author: open-mmlab File: setup.py License: Apache License 2.0 | 6 votes |
def get_git_hash(): def _minimal_ext_cmd(cmd): # construct minimal environment env = {} for k in ['SYSTEMROOT', 'PATH', 'HOME']: v = os.environ.get(k) if v is not None: env[k] = v # LANGUAGE is used on win32 env['LANGUAGE'] = 'C' env['LANG'] = 'C' env['LC_ALL'] = 'C' out = subprocess.Popen( cmd, stdout=subprocess.PIPE, env=env).communicate()[0] return out try: out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) sha = out.strip().decode('ascii') except OSError: sha = 'unknown' return sha
Example 10
Project: sandsifter Author: Battelle File: sifter.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def disas_objdump(b): with open("/dev/shm/shifter", "w") as f: f.write(b) if arch == "64": dis, errors = subprocess.Popen("objdump -D --insn-width=256 -b binary \ -mi386 -Mx86-64 /dev/shm/shifter | head -8 | tail -1", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).communicate() else: dis, errors = subprocess.Popen("objdump -D --insn-width=256 -b binary \ -mi386 /dev/shm/shifter | head -8 | tail -1", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).communicate() dis = dis[6:] # address raw = dis[:256*3].replace(" ","") dis = dis[256*3:].strip().split(None, 2) mnemonic = dis[0] if len(dis) > 1: op_str = dis[1] else: op_str = "" if mnemonic == "(bad)": mnemonic = "(unk)" insn = "" op_str = "" size = len(raw)/2 return (mnemonic, op_str, size)
Example 11
Project: sandsifter Author: Battelle File: sifter.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def start(self): self.command = "%s %s -%c -R %s -s %d" % \ ( INJECTOR, " ".join(self.settings.args), self.settings.synth_mode, "-0" if self.settings.root else "", self.settings.seed ) self.process = subprocess.Popen( "exec %s" % self.command, shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE, preexec_fn=os.setsid )
Example 12
Project: multibootusb Author: mbusb File: osdriver.py License: GNU General Public License v2.0 | 6 votes |
def dd_iso_image_readoutput(self, dd_process, gui_update, in_file_size, output_q): # If this time delay is not given, the Popen does not execute # the actual command time.sleep(0.1) dd_process.send_signal(signal.SIGUSR1) dd_process.stderr.flush() while True: time.sleep(0.1) out_error = dd_process.stderr.readline().decode() if out_error: if 'bytes' in out_error: bytes_copied = float(out_error.split(' ', 1)[0]) gui_update( bytes_copied / in_file_size * 100. ) break if 15 < output_q.qsize(): output_q.get() output_q.put(out_error.rstrip()) else: # stderr is closed break
Example 13
Project: multibootusb Author: mbusb File: osdriver.py License: GNU General Public License v2.0 | 6 votes |
def gpt_device(self, dev_name): disk_dev = self.physical_disk(dev_name) cmd = ['parted', disk_dev, '-s', 'print'] with open(os.devnull) as devnull: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=devnull) _cmd_out, _err_out = p.communicate() p.wait() if p.returncode != 0: lang = os.getenv('LANG') encoding = lang.rsplit('.')[-1] if lang else 'utf-8' raise RuntimeError(str(_err_out, encoding)) subprocess.check_call(['partprobe', disk_dev]) if b'msdos' in _cmd_out: return False if b'gpt' in _cmd_out: return True raise RuntimeError("Disk '%s' is uninitialized and not usable." % disk_dev)
Example 14
Project: multibootusb Author: mbusb File: persistence.py License: GNU General Public License v2.0 | 6 votes |
def detect_missing_tools(distro): tools_dir = os.path.join('data', 'tools') if platform.system() == 'Windows': _7zip_exe = gen.resource_path( os.path.join(tools_dir, '7zip', '7z.exe')) e2fsck_exe = gen.resource_path(os.path.join(tools_dir, 'cygwin', 'e2fsck.exe')) resize2fs_exe = gen.resource_path(os.path.join(tools_dir, 'cygwin', 'resize2fs.exe')) else: _7zip_exe = '7z' e2fsck_exe = 'e2fsck' resize2fs_exe = 'resize2fs' if distro not in creator_dict or \ creator_dict[distro][0] is not create_persistence_using_resize2fs: return None try: with open(os.devnull) as devnull: for tool in [e2fsck_exe, resize2fs_exe]: p = subprocess.Popen([tool], stdout=devnull, stderr=devnull) p.communicate() except FileNotFoundError: # Windows return "'%s.exe' is not installed or not available for use." % tool except OSError: # Linux return "'%s' is not installed or not available for use." % tool return None
Example 15
Project: models Author: kipoi File: model.py License: MIT License | 6 votes |
def predict_on_batch(self, inputs): # write test fasta file temp_input = tempfile.NamedTemporaryFile(suffix = ".txt") test_fname = temp_input.name encode_sequence_into_fasta_file(ofname = test_fname, seq = inputs.tolist()) # test gkmsvm temp_ofp = tempfile.NamedTemporaryFile(suffix = ".txt") threads_option = '-T %s' % (str(self.threads)) verbosity_option = '-v 0' command = ' '.join(['gkmpredict', test_fname, self.model_file, temp_ofp.name, threads_option, verbosity_option]) #process = subprocess.Popen(command, shell=True) #process.wait() # wait for it to finish exit_code = os.system(command) temp_input.close() assert exit_code == 0 # get classification results temp_ofp.seek(0) y = np.array([line.split()[-1] for line in temp_ofp], dtype=float) temp_ofp.close() return np.expand_dims(y, 1)
Example 16
Project: CAMISIM Author: CAMI-challenge File: ref_seq_gen.py License: Apache License 2.0 | 6 votes |
def sortSeqDesc(usearch5, usearch6, mergedDir, sortedDir, mapFilePathList): """ Sort sequences in the descending order. """ taxonIdSet = getAllTaxonIdSet(mapFilePathList) inFilePathList = [] sortedFilePathList = [] for taxonId in taxonIdSet: inFilePathList.append(os.path.join(mergedDir, str(str(taxonId) + '.fna'))) sortedFilePathList.append(os.path.join(sortedDir, str(str(taxonId) + '.fna'))) # sort sequences, longer first for inFile, outFile in zip(inFilePathList, sortedFilePathList): sortCmd = str(usearch5 + ' -sort ' + inFile + ' -output ' + outFile + ' --maxlen ' + str(int(getMaxLen(inFile) + 1000)) + ' --minlen 10') #sortCmd = str(usearch6 + ' -sortbylength ' + inFile + ' -output ' + outFile) # + ' -maxqt ' + str(int(getMaxLen(inFile)))) print sortCmd sortProc = subprocess.Popen(sortCmd, shell=True, cwd=os.path.dirname(usearch6), bufsize=-1) sortProc.wait() if sortProc.returncode != 0: sys.stderr.write(str('Cmd: ' + sortCmd + ' ended with return code: ' + str(sortProc.returncode) + '\n')) return print 'sequences sorted'
Example 17
Project: CAMISIM Author: CAMI-challenge File: update.py License: Apache License 2.0 | 6 votes |
def decompress(fileName, settings, type): """ Decompresses a tar.xz file. """ srcFilePath = os.path.join(settings.getLocalDst(type), fileName) if srcFilePath.split('.')[-1] != 'xz': raise("Trying to decompress a non-xz file: " + srcFilePath) cmd = str('tar -xJf ' + srcFilePath) print("Decompressing file: %s" % srcFilePath) try: cmdProc = subprocess.Popen(cmd, shell=True, bufsize=-1, cwd=os.path.dirname(srcFilePath), stdout=None) cmdProc.wait() except Exception as e: print("Can't run command: %s" % cmd) raise e if cmdProc.returncode != 0: print("Command returned with a non-zero status: %s: %s" % (cmdProc.returncode, cmd)) raise Exception("Can't decompress file: %s" % srcFilePath) print("File '%s' was successfully decompressed." % fileName)
Example 18
Project: mlearn Author: materialsvirtuallab File: calcs.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def calculate(self): """ Calculate the elastic constant given Potential class. """ with ScratchDir('.'): input_file = self._setup() p = subprocess.Popen([self.LMP_EXE, '-in', input_file], stdout=subprocess.PIPE) stdout = p.communicate()[0] rc = p.returncode if rc != 0: error_msg = 'LAMMPS exited with return code %d' % rc msg = stdout.decode("utf-8").split('\n')[:-1] try: error_line = [i for i, m in enumerate(msg) if m.startswith('ERROR')][0] error_msg += ', '.join([e for e in msg[error_line:]]) except Exception: error_msg += msg[-1] raise RuntimeError(error_msg) result = self._parse() return result
Example 19
Project: mlearn Author: materialsvirtuallab File: calcs.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def calculate(self): """ Calculate the NEB barrier given Potential class. """ with ScratchDir('.'): input_file = self._setup() p = subprocess.Popen(['mpirun', '-n', str(self.num_replicas), 'lmp_mpi', '-partition', '{}x1'.format(self.num_replicas), '-in', input_file], stdout=subprocess.PIPE) stdout = p.communicate()[0] rc = p.returncode if rc != 0: error_msg = 'LAMMPS exited with return code %d' % rc msg = stdout.decode("utf-8").split('\n')[:-1] try: error_line = [i for i, m in enumerate(msg) if m.startswith('ERROR')][0] error_msg += ', '.join([e for e in msg[error_line:]]) except Exception: error_msg += msg[-1] raise RuntimeError(error_msg) result = self._parse() return result
Example 20
Project: mlearn Author: materialsvirtuallab File: calcs.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def calculate(self): """ Calculate the vacancy formation given Potential class. """ with ScratchDir('.'): input_file, energy_per_atom, num_atoms = self._setup() p = subprocess.Popen([self.LMP_EXE, '-in', input_file], stdout=subprocess.PIPE) stdout = p.communicate()[0] rc = p.returncode if rc != 0: error_msg = 'LAMMPS exited with return code %d' % rc msg = stdout.decode("utf-8").split('\n')[:-1] try: error_line = [i for i, m in enumerate(msg) if m.startswith('ERROR')][0] error_msg += ', '.join([e for e in msg[error_line:]]) except Exception: error_msg += msg[-1] raise RuntimeError(error_msg) defect_energy, _, _ = self._parse() defect_formation_energy = defect_energy - energy_per_atom * num_atoms return defect_formation_energy
Example 21
Project: incubator-spot Author: apache File: utils.py License: Apache License 2.0 | 5 votes |
def popen(cls, cmd, cwd=None, raises=False): ''' Execute the given command string in a new process. Send data to stdin and read data from stdout and stderr, until end-of-file is reached. :param cls : The class as implicit first argument. :param cwd : If it is set, then the child's current directory will be change to `cwd` before it is executed. :param raises : If ``True`` and stderr has data, it raises an ``OSError`` exception. :returns : The output of the given command; pair of (stdout, stderr). :rtype : ``tuple`` :raises OSError: If `raises` and stderr has data. ''' parser = lambda x: [] if x == '' else [y.strip() for y in x.strip().split('\n')] process = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = process.communicate() # .............................trim lines and remove the empty ones _stdout = [x for x in parser(out) if bool(x)] _stderr = [x for x in parser(err) if bool(x)] if _stderr and raises: raise OSError('\n'.join(_stderr)) return _stdout, _stderr
Example 22
Project: vergeml Author: mme File: tensorboard.py License: MIT License | 5 votes |
def _run_command(command): p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) return iter(p.stdout.readline, b'')
Example 23
Project: godot-mono-builds Author: godotengine File: patch_emscripten.py License: MIT License | 5 votes |
def main(raw_args): import os import cmd_utils from os_utils import get_emsdk_root parser = cmd_utils.build_arg_parser(description='Apply patches to the active Emscripten SDK') default_help = 'default: %(default)s' mono_sources_default = os.environ.get('MONO_SOURCE_ROOT', '') if mono_sources_default: parser.add_argument('--mono-sources', default=mono_sources_default, help=default_help) else: parser.add_argument('--mono-sources', required=True) args = parser.parse_args(raw_args) mono_source_root = args.mono_sources emsdk_root = get_emsdk_root() patches = [ '%s/sdks/builds/fix-emscripten-8511.diff' % mono_source_root, '%s/sdks/builds/emscripten-pr-8457.diff' % mono_source_root ] from subprocess import Popen from sys import exit for patch in patches: patch_cmd = 'patch -N -p1 < %s' % patch print('Running: %s' % patch_cmd) proc = Popen('bash -c \'%s; exit $?\'' % patch_cmd, cwd=emsdk_root, shell=True) exit_code = proc.wait() if exit_code != 0: exit('patch exited with error code: %s' % exit_code)
Example 24
Project: godot-mono-builds Author: godotengine File: os_utils.py License: MIT License | 5 votes |
def source(script: str, cwd=None) -> dict: popen_args = {} if cwd is not None: popen_args['cwd'] = cwd import subprocess cmd = 'bash -c \'source %s; bash %s\'' % (script, print_env_sh_path) proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, **popen_args) output = proc.communicate()[0] return dict(line.split('=', 1) for line in output.decode().split('\x00') if line) # Creates the directory if no other file or directory with the same path exists
Example 25
Project: EDeN Author: fabriziocosta File: setup.py License: MIT License | 5 votes |
def checkProgramIsInstalled(self, program, args, where_to_download, affected_tools): try: subprocess.Popen([program, args], stderr=subprocess.PIPE, stdout=subprocess.PIPE) return True except EnvironmentError: # handle file not found error. # the config file is installed in: msg = "\n**{0} not found. This " \ "program is needed for the following "\ "tools to work properly:\n"\ " {1}\n"\ "{0} can be downloaded from here:\n " \ " {2}\n".format(program, affected_tools, where_to_download) sys.stderr.write(msg) except Exception as e: sys.stderr.write("Error: {}".format(e))
Example 26
Project: aegea Author: kislyuk File: cloudinit.py License: Apache License 2.0 | 5 votes |
def upload_bootstrap_asset(cloud_config_data, rootfs_skel_dirs): key_name = "".join(random.choice(string.ascii_letters) for x in range(32)) enc_key = "".join(random.choice(string.ascii_letters) for x in range(32)) logger.info("Uploading bootstrap asset %s to S3", key_name) bucket = ensure_s3_bucket() cipher = subprocess.Popen(["openssl", "aes-256-cbc", "-e", "-k", enc_key], stdin=subprocess.PIPE, stdout=subprocess.PIPE) encrypted_tarfile = cipher.communicate(get_bootstrap_files(rootfs_skel_dirs, dest="tarfile"))[0] bucket.upload_fileobj(io.BytesIO(encrypted_tarfile), key_name) url = clients.s3.generate_presigned_url(ClientMethod='get_object', Params=dict(Bucket=bucket.name, Key=key_name)) cmd = "curl -s '{url}' | openssl aes-256-cbc -d -k {key} | tar -xz --no-same-owner -C /" cloud_config_data["runcmd"].insert(0, cmd.format(url=url, key=enc_key)) del cloud_config_data["write_files"]
Example 27
Project: aegea Author: kislyuk File: printing.py License: Apache License 2.0 | 5 votes |
def page_output(content, pager=None, file=None): if file is None: file = sys.stdout if not content.endswith("\n"): content += "\n" pager_process = None try: if file != sys.stdout or not file.isatty() or not content.startswith(border("┌")): raise AegeaException() content_lines = content.splitlines() content_rows = len(content_lines) tty_cols, tty_rows = get_terminal_size() naive_content_cols = max(len(i) for i in content_lines) if tty_rows > content_rows and tty_cols > naive_content_cols: raise AegeaException() content_cols = max(len(strip_ansi_codes(i)) for i in content_lines) if tty_rows > content_rows and tty_cols > content_cols: raise AegeaException() pager_process = subprocess.Popen(pager or os.environ.get("PAGER", "less -RS"), shell=True, stdin=subprocess.PIPE, stdout=file) pager_process.stdin.write(content.encode("utf-8")) pager_process.stdin.close() pager_process.wait() if pager_process.returncode != os.EX_OK: raise AegeaException() except Exception as e: if not (isinstance(e, IOError) and e.errno == errno.EPIPE): file.write(content.encode("utf-8") if USING_PYTHON2 else content) finally: try: pager_process.terminate() except BaseException: pass
Example 28
Project: Mastering-Python-Networking-Second-Edition Author: PacktPublishing File: eapi_2_acl.py License: MIT License | 5 votes |
def getEdits(filename): """ Opens an editor for the user to edit the ACL, and returns a list of the new ACL contents """ editor = os.environ.get("EDITOR", "vi") # default editor is "vi" ret = subprocess.Popen([editor, filename]).wait() if ret != 0: print "Bad editor exit. Aborting." sys.exit(1) # Read in the file as a list of lines aclContents = open(filename, "r").readlines() print "New access list:" print " ", " ".join(aclContents) print return aclContents
Example 29
Project: aospy Author: spencerahill File: versioneer.py License: Apache License 2.0 | 5 votes |
def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) p = None for c in commands: try: dispcmd = str([c] + args) # remember shell=False, so use git.cmd on windows, not just git p = subprocess.Popen([c] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None)) break except EnvironmentError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) return None, None stdout = p.communicate()[0].strip() if sys.version_info[0] >= 3: stdout = stdout.decode() if p.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) print("stdout was %s" % stdout) return None, p.returncode return stdout, p.returncode
Example 30
Project: aospy Author: spencerahill File: _version.py License: Apache License 2.0 | 5 votes |
def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) p = None for c in commands: try: dispcmd = str([c] + args) # remember shell=False, so use git.cmd on windows, not just git p = subprocess.Popen([c] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None)) break except EnvironmentError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) return None, None stdout = p.communicate()[0].strip() if sys.version_info[0] >= 3: stdout = stdout.decode() if p.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) print("stdout was %s" % stdout) return None, p.returncode return stdout, p.returncode