aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2023-08-09 14:33:08 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-08-10 10:36:35 -0400
commit13b626b67be41635886d0a95e492cd13dfee0b1a (patch)
tree2ed39a76a105260e3c96c57134c461544a90d4a6
parent711e4e3b069313df7e0c9912d316fecd197b2ce0 (diff)
downloadmeson-13b626b67be41635886d0a95e492cd13dfee0b1a.zip
meson-13b626b67be41635886d0a95e492cd13dfee0b1a.tar.gz
meson-13b626b67be41635886d0a95e492cd13dfee0b1a.tar.bz2
Popen_safe_logged: Also log exceptions
Popen can raise OSError when program is not found, or PermissionError if not executable, etc.
-rw-r--r--mesonbuild/utils/universal.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/mesonbuild/utils/universal.py b/mesonbuild/utils/universal.py
index ac239ed..c1125fb 100644
--- a/mesonbuild/utils/universal.py
+++ b/mesonbuild/utils/universal.py
@@ -1547,7 +1547,13 @@ def Popen_safe_logged(args: T.List[str], msg: str = 'Called', **kwargs: T.Any) -
'''
Wrapper around Popen_safe that assumes standard piped o/e and logs this to the meson log.
'''
- p, o, e = Popen_safe(args, **kwargs)
+ try:
+ p, o, e = Popen_safe(args, **kwargs)
+ except Exception as excp:
+ mlog.debug('-----------')
+ mlog.debug(f'{msg}: `{join_args(args)}` -> {excp}')
+ raise
+
rc, out, err = p.returncode, o.strip(), e.strip()
mlog.debug('-----------')
mlog.debug(f'{msg}: `{join_args(args)}` -> {rc}')