aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/main.py')
-rw-r--r--pym/_emerge/main.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index f0f50bdca..0dfc5f998 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -10,6 +10,10 @@ import sys
import textwrap
import platform
import portage
+import portage
+portage.proxy.lazyimport.lazyimport(globals(),
+ 'portage.news:count_unread_news,display_news_notifications',
+)
from portage import os
from portage import _encodings
from portage import _unicode_decode
@@ -587,7 +591,7 @@ def parse_opts(tmpcmdline, silent=False):
global options, shortmapping
actions = frozenset([
- "clean", "config", "depclean", "help",
+ "clean", "check-news", "config", "depclean", "help",
"info", "list-sets", "metadata",
"prune", "regen", "search",
"sync", "unmerge", "version",
@@ -1726,6 +1730,15 @@ def emerge_main(args=None):
if myaction == "list-sets":
writemsg_stdout("".join("%s\n" % s for s in sorted(root_config.sets)))
return os.EX_OK
+ elif myaction == "check-news":
+ news_counts = count_unread_news(
+ root_config.trees["porttree"].dbapi,
+ root_config.trees["vartree"].dbapi)
+ if list(filter(None, news_counts.values())):
+ display_news_notifications(news_counts)
+ elif "--quiet" not in myopts:
+ print("", colorize("GOOD", "*"), "No news items were found.")
+ return os.EX_OK
ensure_required_sets(trees)