diff options
Diffstat (limited to 'lib/bb/fetch2/__init__.py')
-rw-r--r-- | lib/bb/fetch2/__init__.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index 21abb13b1..771f72e4a 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -422,8 +422,11 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []): output += line status = stdout_handle.close() or 0 - signal = status >> 8 - exitstatus = status & 0xff + signal = os.WTERMSIG(status) + if os.WIFEXITED(status): + exitstatus = os.WEXITSTATUS(status) + else: + exitstatus = 0 if (signal or status != 0): for f in cleanup: @@ -434,8 +437,8 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []): if signal: raise FetchError("Fetch command %s failed with signal %s, output:\n%s" % (cmd, signal, output)) - elif status != 0: - raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (cmd, status, output)) + elif exitstatus: + raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (cmd, exitstatus, output)) return output |