Blob Blame History Raw
From 90893a0c84a594337ca22fa83f364f5b4a7fb1b2 Mon Sep 17 00:00:00 2001
From: Michal Toman <mtoman@redhat.com>
Date: Thu, 21 Jul 2011 16:48:08 +0200
Subject: [PATCH 4/4] install-debuginfo: ask before downloading

---
 src/plugins/abrt-action-install-debuginfo |   34 ++++++----------------------
 1 files changed, 8 insertions(+), 26 deletions(-)

diff --git a/src/plugins/abrt-action-install-debuginfo b/src/plugins/abrt-action-install-debuginfo
index 2ad0790..31aab2c 100644
--- a/src/plugins/abrt-action-install-debuginfo
+++ b/src/plugins/abrt-action-install-debuginfo
@@ -11,6 +11,7 @@ import errno
 import time
 import getopt
 import shutil
+import reportclient
 from subprocess import Popen, PIPE
 from yum import _, YumBase
 from yum.callbacks import DownloadBaseCallback
@@ -74,22 +75,6 @@ def unmute_stdout():
         else:
             print "ERR: unmute called without mute?"
 
-def ask_yes_no(prompt, retries=4):
-    while True:
-        try:
-            response = raw_input(prompt)
-        except EOFError:
-            log1("got eof, probably executed from helper, assuming - yes")
-            return True
-        if response in (_("y")): # for translators -> y/Y as yes
-            return True
-        if response in ("", _("n")): # for translators -> N/n as no
-            return False
-        retries = retries - 1
-        if retries < 0:
-            break
-    return False
-
 # TODO: unpack just required debuginfo and not entire rpm?
 # ..that can lead to: foo.c No such file and directory
 # files is not used...
@@ -286,16 +271,13 @@ class DebugInfoDownload(YumBase):
 	    print _("Can't find packages for %u debuginfo files") % len(not_found)
 	if verbose != 0 or total_pkgs != 0:
 	    print _("Packages to download: %u") % total_pkgs
-	    print _("Downloading %.2fMb, installed size: %.2fMb") % (
-	             todownload_size / (1024**2),
-	             installed_size / (1024**2)
-	            )
-
-        # ask only if we have terminal, because for now we don't have a way
-        # how to pass the question to gui and the response back
-        if noninteractive == False and sys.stdout.isatty():
-            if not ask_yes_no(_("Is this ok? [y/N] ")):
-                return RETURN_OK
+	    question = _("Downloading %.2fMb, installed size: %.2fMb. Continue?") % (
+	                 todownload_size / (1024**2),
+	                 installed_size / (1024**2)
+	                )
+	    if not reportclient.ask_yes_no(question):
+	        print _("Download cancelled by user")
+	        return RETURN_OK
 
         for pkg, files in package_files_dict.iteritems():
             dnlcb.downloaded_pkgs = downloaded_pkgs
-- 
1.7.6