diff options
author | Alexander Berntsen <bernalex@gentoo.org> | 2014-09-22 13:48:57 +0200 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2014-09-24 15:35:45 -0700 |
commit | b2e192049456a172a1a24e0f9b2bc65b50c284f5 (patch) | |
tree | 7b3be869dcca5a27243c49b241a07451a7a6c3e1 | |
parent | emerge: --autounmask-write if --ask (bug 481578) (diff) | |
download | portage-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.py | 17 | ||||
-rw-r--r-- | pym/_emerge/post_emerge.py | 5 |
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() |