aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Berntsen <bernalex@gentoo.org>2014-09-22 13:48:57 +0200
committerBrian Dolbec <dolsen@gentoo.org>2014-09-24 15:35:45 -0700
commitb2e192049456a172a1a24e0f9b2bc65b50c284f5 (patch)
tree7b3be869dcca5a27243c49b241a07451a7a6c3e1
parentemerge: --autounmask-write if --ask (bug 481578) (diff)
downloadportage-b2e192049456a172a1a24e0f9b2bc65b50c284f5.tar.gz
portage-b2e192049456a172a1a24e0f9b2bc65b50c284f5.tar.bz2
portage-b2e192049456a172a1a24e0f9b2bc65b50c284f5.zip
Offer to read news while calcing deps (bug 517310)
Signed-off-by: Alexander Berntsen <bernalex@gentoo.org>
-rw-r--r--pym/_emerge/actions.py17
-rw-r--r--pym/_emerge/post_emerge.py5
2 files changed, 19 insertions, 3 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index fa04e109c..9036810a8 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -4061,8 +4061,21 @@ def run_action(emerge_config):
# GLEP 42 says to display news *after* an emerge --pretend
if "--pretend" not in emerge_config.opts:
- display_news_notification(
- emerge_config.target_config, emerge_config.opts)
+ uq = UserQuery(emerge_config.opts)
+ if display_news_notification(emerge_config.target_config,
+ emerge_config.opts) \
+ and "--ask" in emerge_config.opts \
+ and uq.query("Would you like to read the news items while " \
+ "calculating dependencies?",
+ '--ask-enter-invalid' in emerge_config.opts) == "Yes":
+ try:
+ subprocess.call(['eselect', 'news', 'read'])
+ # If eselect is not installed, Python <3.3 will throw an
+ # OSError. >=3.3 will throw a FileNotFoundError, which is a
+ # subclass of OSError.
+ except OSError:
+ writemsg("Please install eselect to use this feature.\n",
+ noiselevel=-1)
retval = action_build(emerge_config.target_config.settings,
emerge_config.trees, emerge_config.target_config.mtimedb,
emerge_config.opts, emerge_config.action,
diff --git a/pym/_emerge/post_emerge.py b/pym/_emerge/post_emerge.py
index d5f1ba5fa..0cb533cf8 100644
--- a/pym/_emerge/post_emerge.py
+++ b/pym/_emerge/post_emerge.py
@@ -37,11 +37,14 @@ def clean_logs(settings):
def display_news_notification(root_config, myopts):
if "news" not in root_config.settings.features:
- return
+ return False
portdb = root_config.trees["porttree"].dbapi
vardb = root_config.trees["vartree"].dbapi
news_counts = count_unread_news(portdb, vardb)
+ if all(v == 0 for v in news_counts.values()):
+ return False
display_news_notifications(news_counts)
+ return True
def show_depclean_suggestion():
out = portage.output.EOutput()