agpl.py (filez): Check the exit code from the command.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 28 Mar 2013 00:02:38 +0000 (00:02 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 28 Mar 2013 00:13:51 +0000 (00:13 +0000)
agpl.py

diff --git a/agpl.py b/agpl.py
index 41ee376..b49153b 100644 (file)
--- a/agpl.py
+++ b/agpl.py
@@ -149,6 +149,15 @@ def filez(cmd):
       ## Whatever's left over will be dealt with next time through.
       left = buf[i:]
 
+    ## Make sure the command actually completed successfully.
+    if kid.wait():
+      rc = kid.returncode
+      raise U.ExpectedError, \
+          (500, "lister command `%s' failed (%s) in `%s'" % (
+            cmd,
+            (rc & 0xff00) and 'rc = %d' % (rc >> 8) or 'signal %d' % rc,
+            dir))
+
     ## If there's trailing junk left over then we should complain.
     if left:
       raise U.ExpectedError, \