diff options
author | Chris Lumens <clumens@redhat.com> | 2007-02-26 19:07:09 +0000 |
---|---|---|
committer | Chris Lumens <clumens@redhat.com> | 2007-02-26 19:07:09 +0000 |
commit | 6a61a6ad52d8d9b66051c168eebaed095b7c2570 (patch) | |
tree | e860b3d6a4eba9b3a406c7e79abadad08dffa56f /yuminstall.py | |
parent | 0b1256fca7c2faf60cf4e0ff59ca34c47379e772 (diff) | |
download | anaconda-6a61a6ad52d8d9b66051c168eebaed095b7c2570.tar.gz anaconda-6a61a6ad52d8d9b66051c168eebaed095b7c2570.tar.xz anaconda-6a61a6ad52d8d9b66051c168eebaed095b7c2570.zip |
Finish up the extended group selection syntax by adding code to deselect
default packages for a group and select optional packages.
Diffstat (limited to 'yuminstall.py')
-rw-r--r-- | yuminstall.py | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/yuminstall.py b/yuminstall.py index 200f311f5..8793776f6 100644 --- a/yuminstall.py +++ b/yuminstall.py @@ -1399,12 +1399,38 @@ class YumBackend(AnacondaBackend): pass return False + def _selectDefaultOptGroup(self, grpid, default, optional): + retval = 0 + grp = self.ayum.comps.return_group(grpid) + + if not default: + for pkg in grp.default_packages.keys(): + self.deselectPackage(pkg) + retval -= 1 + + if optional: + for pkg in grp.optional_packages.keys(): + self.selectPackage(pkg) + retval += 1 + + return retval + def selectGroup(self, group, *args): + if args: + default = args[0][0] + optional = args[0][1] + else: + default = True + optional = False + try: mbrs = self.ayum.selectGroup(group) if len(mbrs) == 0 and self.isGroupSelected(group): return 1 - return len(mbrs) + + extras = self._selectDefaultOptGroup(group, default, optional) + + return len(mbrs) + extras except yum.Errors.GroupsError, e: # try to find out if it's the name or translated name gid = self.__getGroupId(group) @@ -1412,7 +1438,10 @@ class YumBackend(AnacondaBackend): mbrs = self.ayum.selectGroup(gid) if len(mbrs) == 0 and self.isGroupSelected(gid): return 1 - return len(mbrs) + + extras = self._selectDefaultOptGroup(group, default, optional) + + return len(mbrs) + extras else: log.debug("no such group %s" %(group,)) return 0 |