diff --git a/colcon_notification/event_handler/status.py b/colcon_notification/event_handler/status.py index 80a6135..f1c3baf 100644 --- a/colcon_notification/event_handler/status.py +++ b/colcon_notification/event_handler/status.py @@ -55,20 +55,21 @@ def __init__(self): # noqa: D107 # pattern to match progress indicator in e.g. make self._progress_pattern = re.compile(r'^\[( \d| \d\d|1\d\d)%\] ') - # decorate write methods for stdout / stderr - # to clear the last status line before other output - sys.stdout.write = self._write_and_last_clear_status_line( - sys.stdout.write) - sys.stdout.buffer.write = self._write_and_last_clear_status_line( - sys.stdout.buffer.write) - sys.stderr.write = self._write_and_last_clear_status_line( - sys.stderr.write) - sys.stderr.buffer.write = self._write_and_last_clear_status_line( - sys.stderr.buffer.write) - self._last_status_line_length = None - - # register exit handle to ensure the last status line is cleared - atexit.register(self._clear_last_status_line) + if self.enabled: + # decorate write methods for stdout / stderr + # to clear the last status line before other output + sys.stdout.write = self._write_and_last_clear_status_line( + sys.stdout.write) + sys.stdout.buffer.write = self._write_and_last_clear_status_line( + sys.stdout.buffer.write) + sys.stderr.write = self._write_and_last_clear_status_line( + sys.stderr.write) + sys.stderr.buffer.write = self._write_and_last_clear_status_line( + sys.stderr.buffer.write) + self._last_status_line_length = None + + # register exit handle to ensure the last status line is cleared + atexit.register(self._clear_last_status_line) def _write_and_last_clear_status_line(self, func): def wrapped_func(*args, **kwargs):