diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2023-01-22 16:40:14 -0500 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2023-01-29 14:51:07 -0500 |
commit | 7b0a590c1bc1af2a70ca51d9e9865cae741f2cfa (patch) | |
tree | 8a3b847008a1de647d045fa9be8a7db78a21c200 | |
parent | e990c5fdbd946a354341a4fd5ad80911c31078a0 (diff) | |
download | meson-7b0a590c1bc1af2a70ca51d9e9865cae741f2cfa.zip meson-7b0a590c1bc1af2a70ca51d9e9865cae741f2cfa.tar.gz meson-7b0a590c1bc1af2a70ca51d9e9865cae741f2cfa.tar.bz2 |
mlog: do not squelch console output for errors
We have functionality to squelch logging, and we use this for situations
where we run a fake interpreter and then emit output. e.g. `introspect`.
It's reasonable to avoid logging your bog-standard noisy `mlog.log()`
here, but unfortunately, we also avoided logging the output of
`mlog.exception()` followed by `sys.exit(2)`, because that went through
mlog! :P Special-case this to keep on printing, even if mlog.disable()
was used -- in such a case, we really do want to emit log output no
matter what. Users need this info to ensure they have any clue why Meson
returned a non-zero exit code.
-rw-r--r-- | mesonbuild/mlog.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py index ae8c7a3..7080960 100644 --- a/mesonbuild/mlog.py +++ b/mesonbuild/mlog.py @@ -422,7 +422,13 @@ def exception(e: Exception, prefix: T.Optional[AnsiDecorator] = None) -> None: if prefix: args.append(prefix) args.append(str(e)) - log(*args) + + restore = log_disable_stdout + if restore: + enable() + log(*args, is_error=True) + if restore: + disable() # Format a list for logging purposes as a string. It separates # all but the last item with commas, and the last with 'and'. |