diff options
author | Aaron Bentley <abentley@panoramicfeedback.com> | 2005-04-14 18:07:49 +0000 |
---|---|---|
committer | Aaron Bentley <abentley@panoramicfeedback.com> | 2005-04-14 18:07:49 +0000 |
commit | 16a391aaf9d3934f7297b7a8fb87184cf555882f (patch) | |
tree | b016864fd16dcbaaba1ab09ec0a6668dddcaa60b /libbe/arch.py | |
parent | 82c1e85e1845d33b8e552c9f832f91d032466036 (diff) | |
download | bugseverywhere-16a391aaf9d3934f7297b7a8fb87184cf555882f.tar.gz |
Added preliminary tree-diffing support
Diffstat (limited to 'libbe/arch.py')
-rw-r--r-- | libbe/arch.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/libbe/arch.py b/libbe/arch.py index 7e1cd1f..21a6809 100644 --- a/libbe/arch.py +++ b/libbe/arch.py @@ -1,4 +1,4 @@ -from popen2 import Popen4 +from popen2 import Popen3 import os import config client = config.get_val("arch_client") @@ -7,17 +7,21 @@ if client is None: config.set_val("arch_client", client) def invoke(args): - q=Popen4(args) + q=Popen3(args, True) output = q.fromchild.read() + error = q.childerr.read() status = q.wait() if os.WIFEXITED(status): - return os.WEXITSTATUS(status) - raise Exception("Command failed") + return os.WEXITSTATUS(status), output, error + raise Exception("Command failed: %s" % error) def invoke_client(*args, **kwargs): - status = invoke((client,) + args) + cl_args = [client] + cl_args.extend(args) + status,output,error = invoke(cl_args) if status not in (0,): - raise Exception("Command failed") + raise Exception("Command failed: %s" % error) + return output def add_id(filename): invoke_client("add-id", filename) @@ -35,6 +39,13 @@ def set_file_contents(path, contents): if add: add_id(path) + +def path_in_reference(bug_dir, spec): + if spec is not None: + return invoke_client("file-find", bug_dir, spec).rstrip('\n') + return invoke_client("file-find", bug_dir).rstrip('\n') + + def unlink(path): try: os.unlink(path) |