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