diff --git a/nvchecker/source/cmd.py b/nvchecker/source/cmd.py index 124f9fe..d823592 100644 --- a/nvchecker/source/cmd.py +++ b/nvchecker/source/cmd.py @@ -9,12 +9,22 @@ logger = structlog.get_logger(logger_name=__name__) async def get_version(name, conf): cmd = conf['cmd'] - p = await asyncio.create_subprocess_shell(cmd, stdout=asyncio.subprocess.PIPE) + p = await asyncio.create_subprocess_shell( + cmd, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) - output = (await p.communicate())[0].strip().decode('latin1') + output, error = await p.communicate() + output = output.strip().decode('latin1') + error = output.strip().decode(errors='replace') if p.returncode != 0: logger.error('command exited with error', + cmd=cmd, error=error, name=name, returncode=p.returncode) - return - - return output + elif not output: + logger.error('command exited without output', + cmd=cmd, error=error, + name=name, returncode=p.returncode) + else: + return output