I have 4 branches which might be worth putting in for 3.2.18, everyone
may or maynot have looked at them before and they aren't "obviously
simple/wonderful" enough I've just committed them, so I'll just list
them and you can tell me what you think...

   _quickWhatProvides
*  group_pc
   repo-sacks
   repomd-checksums

  group_pc

 Output percentages of installed groups in grouplist -v, this is a UI
tweak for groups ... is kinda useful to quickly see what you do/don't
have installed. Also nudges people away from the assumption that groups
are "installed" or not as a group.

commit 728d31b917467b0fe1695c8961e02f660ebf7fcd
Author: James Antill <[EMAIL PROTECTED]>
Date:   Sat Apr 19 22:37:11 2008 -0400

    Add percentage used stats. to grouplist -v

diff --git a/cli.py b/cli.py
index 4d84b74..f34e1da 100644
--- a/cli.py
+++ b/cli.py
@@ -797,6 +797,15 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
 
     def returnGroupLists(self, userlist):
 
+        def _gpc(pkg_names):
+            if not pkg_names:
+                return ""
+            inst = 0
+            for pkg_name in pkg_names:
+                if self.rpmdb.contains(name=pkg_name):
+                    inst += 1
+            return "%3d%%" % ((inst * 100) / len(pkg_names))
+
         uservisible=1
             
         if len(userlist) > 0:
@@ -806,19 +815,56 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         installed, available = self.doGroupLists(uservisible=uservisible)
         mylang = yum.misc.get_my_lang_code()
         
+        maxlen = 0
+        if self.verbose_logger.isEnabledFor(yum.logginglevels.DEBUG_3):
+            for group in installed + available:
+                nlen = len(group.nameByLang(mylang))
+                if nlen > maxlen:
+                    maxlen = nlen
+
         if len(installed) > 0:
             self.verbose_logger.log(yum.logginglevels.INFO_2,
                 _('Installed Groups:'))
+            if maxlen:
+                self.verbose_logger.log(yum.logginglevels.INFO_2,
+                    _("   %-*s  %4s %4s %4s %4s"), maxlen, _('Group name'),
+                    _('Core'), _('Def'), _('Opt'), _('Cond'))
+
             for group in sorted(installed, key=lambda x: x.nameByLang(mylang)):
-                self.verbose_logger.log(yum.logginglevels.INFO_2, '   %s',
-                    group.nameByLang(mylang))
+                if not 
self.verbose_logger.isEnabledFor(yum.logginglevels.DEBUG_3):
+                    self.verbose_logger.log(yum.logginglevels.INFO_2, '   %s',
+                        group.nameByLang(mylang))
+                else:
+                    # In verbose mode output stats on installed PC
+                    self.verbose_logger.log(yum.logginglevels.INFO_2,
+                                            _('   %-*s: %4s %4s %4s %4s'),
+                                            maxlen, group.nameByLang(mylang),
+                                            _gpc(group.mandatory_packages),
+                                            _gpc(group.default_packages),
+                                            _gpc(group.optional_packages),
+                                            _gpc(group.conditional_packages))
         
         if len(available) > 0:
             self.verbose_logger.log(yum.logginglevels.INFO_2,
                 _('Available Groups:'))
+            if maxlen:
+                self.verbose_logger.log(yum.logginglevels.INFO_2,
+                    _("   %-*s  %4s %4s %4s %4s"), maxlen, _('Group name'),
+                    _('Core'), _('Def'), _('Opt'), _('Cond'))
+
             for group in sorted(available, key=lambda x: x.nameByLang(mylang)):
-                self.verbose_logger.log(yum.logginglevels.INFO_2, '   %s',
-                    group.nameByLang(mylang))
+                if not 
self.verbose_logger.isEnabledFor(yum.logginglevels.DEBUG_3):
+                    self.verbose_logger.log(yum.logginglevels.INFO_2, '   %s',
+                        group.nameByLang(mylang))
+                else:
+                    # In verbose mode output stats on installed PC
+                    self.verbose_logger.log(yum.logginglevels.INFO_2,
+                                            _('   %-*s: %4s %4s %4s %4s'),
+                                            maxlen, group.nameByLang(mylang),
+                                            _gpc(group.mandatory_packages),
+                                            _gpc(group.default_packages),
+                                            _gpc(group.optional_packages),
+                                            _gpc(group.conditional_packages))
 
             
         return 0, [_('Done')]

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to