[yum-cvs] yum: output.py rpmUtils/miscutils.py

Seth Vidal skvidal at linux.duke.edu
Tue Jul 24 20:38:35 UTC 2007


 output.py             |    8 +++++++-
 rpmUtils/miscutils.py |   11 +++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

commit f691d64ea66087858ce30eccd8cadda97c855f00
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Jul 24 16:37:45 2007 -0400

    apply panu's patch to catch rpm signals:
    should potentially close 241278

diff --git a/output.py b/output.py
index 835613d..4519477 100644
--- a/output.py
+++ b/output.py
@@ -25,9 +25,15 @@ from i18n import _
 from urlgrabber.progress import TextMeter
 from urlgrabber.grabber import URLGrabError
 from yum.misc import sortPkgObj, prco_tuple_to_string
+from rpmUtils.miscutils import checkSignals
 
 from yum import logginglevels
 
+class YumTextMeter(TextMeter):
+    def update(self, amount_read, now=None):
+        checkSignals()
+        TextMeter.update(self, amount_read, now)
+
 class YumOutput:
 
     def __init__(self):
@@ -329,7 +335,7 @@ Remove   %5.5s Package(s)
             self.repos.setProgressBar(None)
             self.repos.callback = None
         else:
-            self.repos.setProgressBar(TextMeter(fo=sys.stdout))
+            self.repos.setProgressBar(YumTextMeter(fo=sys.stdout))
             self.repos.callback = CacheProgressCallback()
 
         # setup our failure report for failover
diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index f36122f..25ea956 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -21,6 +21,7 @@ import gzip
 import os
 import sys
 import locale
+import signal
 
 import rpmUtils.transaction
 
@@ -357,3 +358,13 @@ def hdrFromPackage(ts, package):
     
     os.close(fdno)
     return hdr
+
+def checkSignals():
+    if hasattr(rpm, "checkSignals"):
+        if rpm.signalsCaught([signal.SIGINT, 
+                              signal.SIGTERM,
+                              signal.SIGPIPE,
+                              signal.SIGQUIT,
+                              signal.SIGHUP]):
+            exit(1)
+    



More information about the Yum-cvs-commits mailing list