[Yum-devel] [PATCH] Add a --group flag to filter packages by comps group
Dennis Gregorovic
dgregor at redhat.com
Wed Mar 31 19:18:35 UTC 2010
---
repoclosure.py | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
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:
--
1.6.6.1
More information about the Yum-devel
mailing list