|
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 |
|