From patchwork Wed Aug 15 15:58:46 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel] knotty: Chain the WINCH signal handler in progressbar so any other handler is preserved and called Date: Wed, 15 Aug 2012 15:58:46 -0000 From: Richard Purdie X-Patchwork-Id: 34639 Message-Id: <1345046326.14667.8.camel@ted> To: bitbake-devel Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 9f51823..34b5969 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -25,6 +25,7 @@ import sys import xmlrpclib import logging import progressbar +import signal import bb.msg from bb.ui import uihelper @@ -37,8 +38,21 @@ class BBProgress(progressbar.ProgressBar): widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ', progressbar.ETA()] + try: + self._resize_default = signal.getsignal(signal.SIGWINCH) + except: + self._resize_default = None progressbar.ProgressBar.__init__(self, maxval, [self.msg + ": "] + widgets) + def _handle_resize(self, signum, frame): + progressbar.ProgressBar._handle_resize(self, signum, frame) + if self._resize_default: + self._resize_default(signum, frame) + def finish(self): + progressbar.ProgressBar.finish(self) + if self._resize_default: + signal.signal(signal.SIGWINCH, self._resize_default) + class NonInteractiveProgress(object): fobj = sys.stdout