From: "Brian Dolbec" <brian.dolbec@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/layman:master commit in: layman/
Date: Wed, 26 Oct 2011 23:19:19 +0000 (UTC) [thread overview]
Message-ID: <9a74747e60f08a6f303d36d45ad9bb2ba828af42.dol-sen@gentoo> (raw)
commit: 9a74747e60f08a6f303d36d45ad9bb2ba828af42
Author: dol-sen <brian.dolbec <AT> gmail <DOT> com>
AuthorDate: Wed Oct 26 23:17:06 2011 +0000
Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Wed Oct 26 23:17:06 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/layman.git;a=commit;h=9a74747e
add news reporting capability when adding/syncing overlays. Bug 388233
---
layman/api.py | 36 +++++++++++++++++++++++++++++++-----
layman/cli.py | 4 ++--
layman/config.py | 2 ++
3 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/layman/api.py b/layman/api.py
index 3005c3f..cbf70e6 100755
--- a/layman/api.py
+++ b/layman/api.py
@@ -32,8 +32,6 @@ UNKNOWN_REPO_ID = "Repo ID '%s' " + \
class LaymanAPI(object):
"""class to hold and run a layman instance for use by API consumer apps, guis, etc.
"""
- ## hell, even the current cli should probably be converted to use this one.
- ## It is a near duplicate of the actions classes.
def __init__(self, config=None, report_errors=False, output=None):
"""
@@ -126,12 +124,12 @@ class LaymanAPI(object):
return True
- def add_repos(self, repos):
+ def add_repos(self, repos, update_news=False):
"""installs the seleted repo id
@type repos: list of strings or string
@param repos: ['repo-id', ...] or 'repo-id'
- @param output: method to handle output if desired
+ @param update_news: bool, defaults to False
@rtype dict
"""
repos = self._check_repo_type(repos, "add_repo")
@@ -154,6 +152,9 @@ class LaymanAPI(object):
"' : "+str(e))
results.append(success)
self.get_installed(dbreload=True)
+ if (True in results) and update_news:
+ self.update_news(repos)
+
if False in results:
return False
return True
@@ -287,11 +288,13 @@ class LaymanAPI(object):
return self._get_remote_db().list(verbose=verbose, width=width)
- def sync(self, repos, output_results=True):
+ def sync(self, repos, output_results=True, update_news=False):
"""syncs the specified repo(s) specified by repos
@type repos: list of strings or string
@param repos: ['repo-id1', ...] or 'repo-id'
+ @param output_results: bool, defaults to True
+ @param update_news: bool, defaults to False
@rtype bool or {'repo-id': bool,...}
"""
self.output.debug("API.sync(); repos to sync = %s" % ', '.join(repos), 5)
@@ -387,6 +390,9 @@ class LaymanAPI(object):
self.sync_results = (success, warnings, fatals)
+ if update_news:
+ self.update_news(repos)
+
return fatals == []
@@ -522,6 +528,7 @@ class LaymanAPI(object):
return messages
return []
+
def supported_types(self):
"""returns a dictionary of all repository types,
with boolean values"""
@@ -534,6 +541,25 @@ class LaymanAPI(object):
return supported
+ def update_news(self, repos=None):
+ try:
+ if self.config['news_reporter'] == 'portage':
+ from _emerge.actions import (display_news_notification,
+ load_emerge_config)
+ settings, trees, mtimedb = load_emerge_config()
+ display_news_notification(trees[settings["ROOT"]]["root_config"],
+ {"news_repos": repos})
+ elif self.config['news_reporter'] == 'custom':
+ self.config['custom_news_func'](repos)
+ elif self.config['news_reporter'] == 'pkgcore':
+ return
+ except:
+ self._error("update_news() failed running %s news reporter function"
+ % self.config['news_reporter'])
+ return
+
+
+
def create_fd():
"""creates file descriptor pairs an opens them ready for
use in place of stdin, stdout, stderr.
diff --git a/layman/cli.py b/layman/cli.py
index 95ec858..b716ea0 100644
--- a/layman/cli.py
+++ b/layman/cli.py
@@ -230,7 +230,7 @@ class Main(object):
if 'ALL' in selection:
selection = self.api.get_available()
self.output.debug('Adding selected overlays', 6)
- result = self.api.add_repos(selection)
+ result = self.api.add_repos(selection, update_news=True)
if result:
self.output.info('Successfully added overlay(s) '+\
', '.join(selection) +'.', 2)
@@ -249,7 +249,7 @@ class Main(object):
if self.config['sync_all'] or 'ALL' in selection:
selection = self.api.get_installed()
self.output.debug('Updating selected overlays', 6)
- result = self.api.sync(selection)
+ result = self.api.sync(selection, update_news=True)
# blank newline -- no " *"
self.output.notice('')
return result
diff --git a/layman/config.py b/layman/config.py
index 2af4069..c245853 100644
--- a/layman/config.py
+++ b/layman/config.py
@@ -95,6 +95,7 @@ class BareConfig(object):
'nocheck' : 'yes',
'proxy' : '',
'umask' : '0022',
+ 'news_reporter': 'portage',
'overlays' :
'http://www.gentoo.org/proj/en/overlays/repositories.xml',
'overlay_defs': '%(configdir)s/overlays',
@@ -144,6 +145,7 @@ class BareConfig(object):
'width': width,
'verbose': verbose,
'quiet': quiet,
+ 'custom_news_func': None,
}
self._set_quietness(quietness)
self.config = None
next reply other threads:[~2011-10-26 23:19 UTC|newest]
Thread overview: 246+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-26 23:19 Brian Dolbec [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-04-24 20:59 [gentoo-commits] proj/layman:master commit in: layman/ Brian Dolbec
2020-04-24 20:59 Brian Dolbec
2017-03-22 6:36 Brian Dolbec
2017-02-02 17:12 Brian Dolbec
2017-02-02 1:12 Devan Franchini
2017-02-02 1:12 Devan Franchini
2016-11-10 2:59 Devan Franchini
2016-05-10 22:13 Brian Dolbec
2016-05-02 3:30 Devan Franchini
2016-03-10 0:00 Devan Franchini
2016-03-09 23:37 Devan Franchini
2016-02-29 6:21 Devan Franchini
2016-01-29 10:21 Brian Dolbec
2015-12-31 1:03 Devan Franchini
2015-12-26 23:24 Brian Dolbec
2015-11-29 3:26 Devan Franchini
2015-11-29 3:12 Devan Franchini
2015-10-17 3:20 Devan Franchini
2015-10-16 18:49 Devan Franchini
2015-10-16 18:49 Devan Franchini
2015-09-23 15:25 Devan Franchini
2015-09-05 6:03 Devan Franchini
2015-08-28 1:48 Devan Franchini
2015-08-28 1:48 Devan Franchini
2015-08-28 1:48 Devan Franchini
2015-08-04 1:05 Devan Franchini
2015-07-19 3:53 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-15 16:15 Devan Franchini
2015-07-15 15:53 Devan Franchini
2015-07-13 23:05 Devan Franchini
2015-07-13 13:26 Devan Franchini
2015-07-09 17:23 Devan Franchini
2015-07-09 16:18 Devan Franchini
2015-06-16 3:45 Devan Franchini
2015-06-14 4:12 Devan Franchini
2015-06-13 4:53 Devan Franchini
2015-06-13 2:38 Devan Franchini
2015-06-13 2:31 Devan Franchini
2015-05-13 21:32 Devan Franchini
2015-05-13 21:27 Devan Franchini
2015-05-13 20:38 Devan Franchini
2015-05-13 20:05 Devan Franchini
2015-05-13 19:58 Devan Franchini
2015-04-22 17:40 Devan Franchini
2015-04-20 17:15 Devan Franchini
2015-03-27 23:42 Devan Franchini
2015-03-26 22:50 Devan Franchini
2015-03-26 22:06 Devan Franchini
2015-03-24 23:08 Devan Franchini
2015-03-24 22:56 Devan Franchini
2015-03-24 22:20 Devan Franchini
2015-03-24 16:08 Devan Franchini
2015-03-07 22:40 Devan Franchini
2015-03-07 22:40 Devan Franchini
2015-03-07 22:10 Devan Franchini
2015-03-07 22:02 Devan Franchini
2015-02-21 18:41 Devan Franchini
2015-02-17 5:07 Brian Dolbec
2015-02-09 18:25 Devan Franchini
2015-02-08 4:20 Brian Dolbec
2015-02-08 4:20 Brian Dolbec
2015-02-08 2:58 Devan Franchini
2015-02-08 1:57 Brian Dolbec
2015-02-08 0:33 Devan Franchini
2015-02-05 2:56 Devan Franchini
2015-02-05 2:31 Devan Franchini
2015-02-05 2:20 Devan Franchini
2015-02-03 2:43 Devan Franchini
2014-12-08 4:15 Devan Franchini
2014-12-04 20:46 Devan Franchini
2014-11-13 19:03 Brian Dolbec
2014-11-13 18:43 Brian Dolbec
2014-11-13 18:43 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-02 21:14 Devan Franchini
2014-09-28 22:42 Devan Franchini
2014-09-20 17:47 Devan Franchini
2014-09-19 18:13 Devan Franchini
2014-09-19 18:13 Devan Franchini
2014-08-28 22:54 Brian Dolbec
2014-08-28 22:01 Devan Franchini
2014-08-28 22:01 Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-17 4:01 ` Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-15 23:27 ` Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-15 23:16 ` Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-15 22:33 ` Devan Franchini
2014-08-19 1:49 Devan Franchini
2014-08-16 22:46 ` Devan Franchini
2014-08-17 20:55 Devan Franchini
2014-08-19 1:49 ` Devan Franchini
2014-08-17 14:15 Brian Dolbec
2014-08-16 18:06 Brian Dolbec
2014-08-15 23:59 Devan Franchini
2014-08-19 1:49 ` Devan Franchini
2014-06-16 3:40 Brian Dolbec
2014-06-16 3:40 Brian Dolbec
2014-06-16 3:40 Brian Dolbec
2014-06-16 3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16 3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16 3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16 3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16 3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16 3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16 3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16 3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-05-07 22:18 Devan Franchini
2014-03-10 3:18 Brian Dolbec
2013-12-29 2:30 Brian Dolbec
2013-08-18 14:48 Brian Dolbec
2013-07-29 1:46 Brian Dolbec
2013-01-11 18:29 Brian Dolbec
2012-12-16 18:13 Brian Dolbec
2012-11-28 4:14 Brian Dolbec
2012-11-28 4:02 Brian Dolbec
2012-11-28 4:02 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-01 4:00 Brian Dolbec
2012-10-30 8:30 Brian Dolbec
2012-10-17 6:21 Brian Dolbec
2012-10-17 6:21 Brian Dolbec
2012-10-13 22:20 Brian Dolbec
2012-10-13 22:20 Brian Dolbec
2012-10-08 5:37 Brian Dolbec
2012-10-07 23:40 Brian Dolbec
2012-10-07 23:40 Brian Dolbec
2012-06-07 4:49 Brian Dolbec
2012-06-07 4:49 Brian Dolbec
2012-06-07 4:49 Brian Dolbec
2012-04-14 2:14 Brian Dolbec
2012-04-09 19:47 Brian Dolbec
2012-04-01 21:54 Brian Dolbec
2012-03-26 3:43 Brian Dolbec
2012-03-04 15:36 Brian Dolbec
2011-12-27 2:20 Brian Dolbec
2011-10-27 4:42 Brian Dolbec
2011-10-14 3:14 Brian Dolbec
2011-09-24 6:07 Brian Dolbec
2011-08-25 3:33 Brian Dolbec
2011-08-21 7:53 Brian Dolbec
2011-08-21 7:53 Brian Dolbec
2011-08-21 7:53 Brian Dolbec
2011-08-20 17:06 Brian Dolbec
2011-08-20 17:06 Brian Dolbec
2011-08-11 3:24 Brian Dolbec
2011-08-11 3:24 Brian Dolbec
2011-08-11 3:24 Brian Dolbec
2011-08-11 3:24 Brian Dolbec
2011-08-09 2:46 Brian Dolbec
2011-08-07 21:21 Brian Dolbec
2011-08-07 7:12 Brian Dolbec
2011-08-07 7:12 Brian Dolbec
2011-08-07 7:12 Brian Dolbec
2011-08-07 6:00 Brian Dolbec
2011-08-07 2:29 Brian Dolbec
2011-08-06 20:30 Brian Dolbec
2011-08-06 18:29 Brian Dolbec
2011-08-06 18:29 Brian Dolbec
2011-07-28 21:33 Brian Dolbec
2011-07-23 6:45 Brian Dolbec
2011-07-20 18:34 Brian Dolbec
2011-07-12 20:01 Brian Dolbec
2011-07-12 19:57 Brian Dolbec
2011-07-12 19:57 Brian Dolbec
2011-07-12 19:02 Brian Dolbec
2011-07-12 19:02 Brian Dolbec
2011-05-18 5:19 Brian Dolbec
2011-05-18 5:13 Brian Dolbec
2011-05-14 13:06 Brian Dolbec
2011-05-05 9:44 Brian Dolbec
2011-05-02 5:25 Brian Dolbec
2011-05-01 2:18 Brian Dolbec
2011-05-01 0:53 Brian Dolbec
2011-05-01 0:26 Brian Dolbec
2011-04-30 22:37 Brian Dolbec
2011-04-30 22:37 Brian Dolbec
2011-04-30 6:37 Brian Dolbec
2011-04-30 6:37 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 4:49 Brian Dolbec
2011-02-19 4:47 Brian Dolbec
2011-02-19 4:10 Brian Dolbec
2011-02-19 4:07 Brian Dolbec
2011-02-17 21:53 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 6:00 Brian Dolbec
2011-02-14 0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14 6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14 0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14 6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14 0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14 6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14 0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14 6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14 0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14 6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9a74747e60f08a6f303d36d45ad9bb2ba828af42.dol-sen@gentoo \
--to=brian.dolbec@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox