diff options
author | rsiddharth <s@ricketyspace.net> | 2016-10-02 13:21:50 +0000 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2016-10-02 13:29:18 +0000 |
commit | 60ae86411fb4727dd29baacb60f1d7d78a1c0942 (patch) | |
tree | b7eec93cf3161d60207c0b75795857ca1a6e8995 /gd_diff.py | |
parent | e2e157cfc3286a291e64121bf1422faf85094880 (diff) |
Add `execute` function (gd_diff.py).
* gd_diff.py (execute): New function.
* tests/test_gd_diff.py (test_execute_success, test_execute_cmderror)
(test_execute_raise_exception): Tests for `execute` function.
Diffstat (limited to 'gd_diff.py')
-rw-r--r-- | gd_diff.py | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -6,8 +6,12 @@ # gns-deb-diff is under the Public Domain. See # <https://creativecommons.org/publicdomain/zero/1.0> +import shlex import sys +from subprocess import run, PIPE + + # list of recognized fields. field_list = [ "Change-Type", @@ -28,6 +32,23 @@ def read_file(fpath): return f.read() +def execute(cmd, out=None, err=None): + """Run `cmd`. Returns an instance of `subprocess.CompletedProcess` + + `cmd` must be a string containing the command to run. + """ + cmd = shlex.split(cmd) + + try: + completed_process = run(cmd, stdout=out, stderr=err) + except (FileNotFoundError, OSError, ValueError) as e: + print("Error running '%s'\n Error Info:\n %r" % (cmd[0], e), + file=sys.stderr) + sys.exit(1) + + return completed_process + + def get_packages(pkgs_file): """Return an iterator contaning of package names from `pkgs_file`. |