# HG changeset patch # User Yuya Nishihara # Date 2018-04-07 12:17:50 # Node ID 538353b80676fac40506f1d8bb914346f97e4e71 # Parent a6c6b7beb0257e0a50b1eb178c36d050f37a569e procutil: fix error message of tempfile filter First, we need to use procutil.system() to get an exit code compatible with explainexit(). Second, explainexit() returns (msg, code) tuple. diff --git a/mercurial/utils/procutil.py b/mercurial/utils/procutil.py --- a/mercurial/utils/procutil.py +++ b/mercurial/utils/procutil.py @@ -174,12 +174,12 @@ def tempfilter(s, cmd): os.close(outfd) cmd = cmd.replace('INFILE', inname) cmd = cmd.replace('OUTFILE', outname) - code = os.system(cmd) + code = system(cmd) if pycompat.sysplatform == 'OpenVMS' and code & 1: code = 0 if code: raise error.Abort(_("command '%s' failed: %s") % - (cmd, explainexit(code))) + (cmd, explainexit(code)[0])) with open(outname, 'rb') as fp: return fp.read() finally: diff --git a/tests/test-encode.t b/tests/test-encode.t --- a/tests/test-encode.t +++ b/tests/test-encode.t @@ -59,5 +59,14 @@ check hg cat operation this is a test $ hg -R .. cat --decode ../a.gz | gunzip this is a test + $ cd .. + +check tempfile filter + + $ hg cat a.gz --decode --config 'decode.*.gz=tempfile:gzip -c INFILE > OUTFILE' | gunzip + this is a test + $ hg cat a.gz --decode --config 'decode.*.gz=tempfile:sh -c "exit 1"' + abort: command '*' failed: exited with status 1 (glob) + [255] $ cd ..