diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2023-08-09 14:33:08 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-08-10 10:36:35 -0400 |
commit | 13b626b67be41635886d0a95e492cd13dfee0b1a (patch) | |
tree | 2ed39a76a105260e3c96c57134c461544a90d4a6 | |
parent | 711e4e3b069313df7e0c9912d316fecd197b2ce0 (diff) | |
download | meson-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.py | 8 |
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}') |