summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-05-27 12:39:35 +0000
committerZac Medico <zmedico@gentoo.org>2007-05-27 12:39:35 +0000
commit99e5a83582eff3900cb74fec86a1abd12ef96bad (patch)
treea16773445c97071c5fd9c3c5d1039d7f32f42171 /bin/emaint
parentAdd progress support to emaint (similar to wget's progress bar). (diff)
downloadportage-multirepo-99e5a83582eff3900cb74fec86a1abd12ef96bad.tar.gz
portage-multirepo-99e5a83582eff3900cb74fec86a1abd12ef96bad.tar.bz2
portage-multirepo-99e5a83582eff3900cb74fec86a1abd12ef96bad.zip
Add SIGWINCH support so that the progress bar is resized if the xterm is resized.
svn path=/main/trunk/; revision=6640
Diffstat (limited to 'bin/emaint')
-rwxr-xr-xbin/emaint9
1 files changed, 7 insertions, 2 deletions
diff --git a/bin/emaint b/bin/emaint
index c44bbe85..0628db37 100755
--- a/bin/emaint
+++ b/bin/emaint
@@ -1,6 +1,6 @@
#!/usr/bin/python -O
-import sys, os, time
+import sys, os, time, signal
from optparse import OptionParser, OptionValueError
if not hasattr(__builtins__, "set"):
from sets import Set as set
@@ -218,13 +218,18 @@ def emaint_main(myargv):
progressBar = portage.output.TermProgressBar()
progressHandler = ProgressHandler()
def display():
- progressBar.set(progressHandler.maxval, progressHandler.curval)
+ progressBar.set(progressHandler.curval, progressHandler.maxval)
progressHandler.display = display
+ def sigwinch_handler(signum, frame):
+ lines, progressBar.term_columns = \
+ portage.output.get_term_size()
+ signal.signal(signal.SIGWINCH, sigwinch_handler)
result = getattr(inst, func)(onProgress=progressHandler.onProgress)
if isatty:
# make sure the final progress is displayed
progressHandler.display()
print
+ signal.signal(signal.SIGWINCH, signal.SIG_DFL)
if result:
print
print "\n".join(result)