aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libbe/bzr.py2
-rw-r--r--libbe/git.py2
-rw-r--r--libbe/vcs.py13
3 files changed, 9 insertions, 8 deletions
diff --git a/libbe/bzr.py b/libbe/bzr.py
index c551ff0..e9e0649 100644
--- a/libbe/bzr.py
+++ b/libbe/bzr.py
@@ -89,7 +89,7 @@ class Bzr(vcs.VCS):
if self._u_any_in_string(strings, error) == True:
raise vcs.EmptyCommit()
else:
- raise vcs.CommandError(args, status, error)
+ raise vcs.CommandError(args, status, stdout="", stderr=error)
revision = None
revline = re.compile("Committed revision (.*)[.]")
match = revline.search(error)
diff --git a/libbe/git.py b/libbe/git.py
index 137cb35..3abe3b8 100644
--- a/libbe/git.py
+++ b/libbe/git.py
@@ -134,7 +134,7 @@ class Git(vcs.VCS):
if status == 128:
if error.startswith("fatal: ambiguous argument 'HEAD': unknown "):
return None
- raise vcs.CommandError(args, status, error)
+ raise vcs.CommandError(args, status, stdout="", stderr=error)
commits = output.splitlines()
try:
return commits[index]
diff --git a/libbe/vcs.py b/libbe/vcs.py
index 3ee1a44..a1d3022 100644
--- a/libbe/vcs.py
+++ b/libbe/vcs.py
@@ -67,13 +67,14 @@ def installed_vcs():
class CommandError(Exception):
- def __init__(self, command, status, err_str):
- strerror = ["Command failed (%d):\n %s\n" % (status, err_str),
+ def __init__(self, command, status, stdout, stderr):
+ strerror = ["Command failed (%d):\n %s\n" % (status, stderr),
"while executing\n %s" % command]
Exception.__init__(self, "\n".join(strerror))
self.command = command
self.status = status
- self.err_str = err_str
+ self.stdout = stdout
+ self.stderr = stderr
class SettingIDnotSupported(NotImplementedError):
pass
@@ -469,13 +470,13 @@ class VCS(object):
q = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE,
shell=True, cwd=cwd)
except OSError, e :
- raise CommandError(args, e.args[0], e)
- output, error = q.communicate(input=stdin)
+ raise CommandError(args, status=e.args[0], stdout="", stderr=e)
+ output,error = q.communicate(input=stdin)
status = q.wait()
if self.verboseInvoke == True:
print >> sys.stderr, "%d\n%s%s" % (status, output, error)
if status not in expect:
- raise CommandError(args, status, error)
+ raise CommandError(args, status, output, error)
return status, output, error
def _u_invoke_client(self, *args, **kwargs):
directory = kwargs.get('directory',None)