1 |
Signed-off-by: Alexander Berntsen <bernalex@g.o> |
2 |
--- |
3 |
Add exception in case eselect is not found. Fix output a tiny bit. |
4 |
|
5 |
pym/_emerge/actions.py | 17 +++++++++++++++-- |
6 |
pym/_emerge/post_emerge.py | 5 ++++- |
7 |
2 files changed, 19 insertions(+), 3 deletions(-) |
8 |
|
9 |
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py |
10 |
index b935139..a050b79 100644 |
11 |
--- a/pym/_emerge/actions.py |
12 |
+++ b/pym/_emerge/actions.py |
13 |
@@ -4058,8 +4058,21 @@ def run_action(emerge_config): |
14 |
|
15 |
# GLEP 42 says to display news *after* an emerge --pretend |
16 |
if "--pretend" not in emerge_config.opts: |
17 |
- display_news_notification( |
18 |
- emerge_config.target_config, emerge_config.opts) |
19 |
+ uq = UserQuery(emerge_config.opts) |
20 |
+ if display_news_notification(emerge_config.target_config, |
21 |
+ emerge_config.opts) \ |
22 |
+ and "--ask" in emerge_config.opts \ |
23 |
+ and uq.query("Would you like to read the news items while " \ |
24 |
+ "calculating dependencies?", |
25 |
+ '--ask-enter-invalid' in emerge_config.opts) == "Yes": |
26 |
+ try: |
27 |
+ subprocess.call(['eselect', 'news', 'read']) |
28 |
+ # If eselect is not installed, Python <3.3 will throw an |
29 |
+ # OSError. 3.4 will throw a FileNotFoundError, which is an |
30 |
+ # subclass of OSError. |
31 |
+ except OSError: |
32 |
+ writemsg("Please install eselect to use this feature.\n", |
33 |
+ noiselevel=-1) |
34 |
retval = action_build(emerge_config.target_config.settings, |
35 |
emerge_config.trees, emerge_config.target_config.mtimedb, |
36 |
emerge_config.opts, emerge_config.action, |
37 |
diff --git a/pym/_emerge/post_emerge.py b/pym/_emerge/post_emerge.py |
38 |
index d5f1ba5..0cb533c 100644 |
39 |
--- a/pym/_emerge/post_emerge.py |
40 |
+++ b/pym/_emerge/post_emerge.py |
41 |
@@ -37,11 +37,14 @@ def clean_logs(settings): |
42 |
|
43 |
def display_news_notification(root_config, myopts): |
44 |
if "news" not in root_config.settings.features: |
45 |
- return |
46 |
+ return False |
47 |
portdb = root_config.trees["porttree"].dbapi |
48 |
vardb = root_config.trees["vartree"].dbapi |
49 |
news_counts = count_unread_news(portdb, vardb) |
50 |
+ if all(v == 0 for v in news_counts.values()): |
51 |
+ return False |
52 |
display_news_notifications(news_counts) |
53 |
+ return True |
54 |
|
55 |
def show_depclean_suggestion(): |
56 |
out = portage.output.EOutput() |
57 |
-- |
58 |
1.8.5.5 |