[yum-commits] 2 commits - repoclosure.py
James Antill
james at osuosl.org
Wed Mar 31 19:39:52 UTC 2010
repoclosure.py | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
New commits:
commit 267c33dd4c50ea9844f3720832c6c65a623d7b4c
Author: Dennis Gregorovic <dgregor at redhat.com>
Date: Wed Mar 31 15:18:35 2010 -0400
Add a --group flag to filter packages by comps group
diff --git a/repoclosure.py b/repoclosure.py
index 4c8cfa6..88a6adb 100755
--- a/repoclosure.py
+++ b/repoclosure.py
@@ -63,6 +63,8 @@ def parseArgs():
help="specify repoid & paths of additional repositories - unique repoid and path required, can be specified multiple times. Example. --repofrompath=myrepo,/path/to/repo")
parser.add_option("-p", "--pkg", action="append",
help="check closure for this package only")
+ parser.add_option("-g", "--group", action="append",
+ help="check closure for packages in this group only")
(opts, args) = parser.parse_args()
return (opts, args)
@@ -70,13 +72,14 @@ def parseArgs():
# so we have to do at least some API guarantee stuff.
class RepoClosure(yum.YumBase):
def __init__(self, arch=[], config="/etc/yum.conf", builddeps=False, pkgonly=None,
- basearch=None):
+ basearch=None, grouponly=None):
yum.YumBase.__init__(self)
if basearch:
self.preconf.arch = basearch
self.logger = logging.getLogger("yum.verbose.repoclosure")
self.builddeps = builddeps
self.pkgonly = pkgonly
+ self.grouponly = grouponly
self.doConfigSetup(fn = config,init_plugins=False)
self._rc_arches = arch
@@ -145,8 +148,18 @@ class RepoClosure(yum.YumBase):
if self.builddeps:
pkgs = filter(lambda x: x.arch == 'src', pkgs)
- if self.pkgonly:
- pkgs = filter(lambda x: x.name in self.pkgonly, pkgs)
+ pkglist = self.pkgonly
+ if self.grouponly:
+ if not pkglist:
+ pkglist = []
+ for group in self.grouponly:
+ groupobj = self.comps.return_group(group)
+ if not groupobj:
+ continue
+ pkglist.extend(groupobj.packages)
+
+ if pkglist:
+ pkgs = filter(lambda x: x.name in pkglist, pkgs)
for pkg in pkgs:
for (req, flags, (reqe, reqv, reqr)) in pkg.returnPrco('requires'):
@@ -189,6 +202,7 @@ def main():
config=opts.config,
builddeps=opts.builddeps,
pkgonly=opts.pkg,
+ grouponly=opts.group,
basearch=opts.basearch)
if opts.repofrompath:
commit 39e3f286c7bb5d09f1440e2a50dd21d0c1603b49
Author: Dennis Gregorovic <dgregor at redhat.com>
Date: Wed Mar 31 15:00:54 2010 -0400
Include all packages listed in the pkgonly arg
diff --git a/repoclosure.py b/repoclosure.py
index d9a94d7..4c8cfa6 100755
--- a/repoclosure.py
+++ b/repoclosure.py
@@ -146,7 +146,7 @@ class RepoClosure(yum.YumBase):
pkgs = filter(lambda x: x.arch == 'src', pkgs)
if self.pkgonly:
- pkgs = filter(lambda x: x.name == self.pkgonly[0], pkgs)
+ pkgs = filter(lambda x: x.name in self.pkgonly, pkgs)
for pkg in pkgs:
for (req, flags, (reqe, reqv, reqr)) in pkg.returnPrco('requires'):
More information about the Yum-commits
mailing list