[yum-commits] package-cleanup.py

Tim Lauridsen timlau at osuosl.org
Thu Mar 26 19:17:29 UTC 2009


 package-cleanup.py |   40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

New commits:
commit a3216dae1210234ef5491af6971071deb781bbaa
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Wed Mar 25 01:01:25 2009 +0200

    Add query formatting.

diff --git a/package-cleanup.py b/package-cleanup.py
index 236590f..7f9c878 100755
--- a/package-cleanup.py
+++ b/package-cleanup.py
@@ -78,7 +78,7 @@ def getLocalRequires(my):
         pkgs[po] = requires
     return pkgs
 
-def buildProviderList(my, pkgs, reportProblems):
+def buildProviderList(my, pkgs, reportProblems, qf):
     """Resolve all dependencies in pkgs and build a dictionary of packages
      that provide something for a package other than itself"""
 
@@ -101,7 +101,7 @@ def buildProviderList(my, pkgs, reportProblems):
                 if not errors:
                     print "Missing dependencies:"
                 errors = True
-                print "Package %s requires %s" % (po,
+                print "Package %s requires %s" % (po.hdr.sprintf(qf),
                   miscutils.formatRequire(req,ver,rflags))
             else:
                 for rpkg in resolve_sack:
@@ -177,7 +177,7 @@ def findDupes(my):
     
     return refined
     
-def printDupes(my):
+def printDupes(my, qf):
     """print out the dupe listing"""
     dupedict = findDupes(my)
     dupes = []    
@@ -191,9 +191,9 @@ def printDupes(my):
             dupes.append(po)
 
     for po in sorted(dupes):
-        print "%s" % po
+        print po.hdr.sprintf(qf)
 
-def cleanOldDupes(my, confirmed):
+def cleanOldDupes(my, confirmed, qf):
     """remove all the older duplicates"""
     dupedict = findDupes(my)
     removedupes = []
@@ -217,7 +217,7 @@ def cleanOldDupes(my, confirmed):
 
     print "I will remove the following old duplicate packages:"
     for po in sorted(removedupes):
-        print "%s" % po
+        print po.hdr.sprintf(qf)
 
     if not confirmed:
         if not userconfirm():
@@ -253,7 +253,7 @@ def _shouldShowLeaf(my, po, leaf_regex, exclude_devel, exclude_bin):
         return True
     return False
 
-def listLeaves(my, all_nodes, leaf_regex, exclude_devel, exclude_bin):
+def listLeaves(my, all_nodes, leaf_regex, exclude_devel, exclude_bin, qf):
     """Print packages that are not required by any other package
        on the system"""
 
@@ -268,9 +268,9 @@ def listLeaves(my, all_nodes, leaf_regex, exclude_devel, exclude_bin):
     for po in leaves:
         if all_nodes or _shouldShowLeaf(my, po, leaf_regex, exclude_devel,
                 exclude_bin):
-            print "%s" % po
+            print po.hdr.sprintf(qf)
 
-def listOrphans(my):
+def listOrphans(my, qf):
     """ This is "yum list extras". """
     avail = my.pkgSack.simplePkgList()
     avail = set(avail)
@@ -279,7 +279,7 @@ def listOrphans(my):
             continue
 
         if po.pkgtup not in avail:
-            print "%s" % po
+            print po.hdr.sprintf(qf)
 
 def getKernels(my):
     """return a list of all installed kernels, sorted newest to oldest"""
@@ -333,7 +333,7 @@ def userconfirm():
     else:            
         return True
     
-def removeKernels(my, count, confirmed, keepdevel):
+def removeKernels(my, count, confirmed, keepdevel, qf):
     """Remove old kernels, keep at most count kernels (and always keep the running
      kernel"""
 
@@ -384,7 +384,7 @@ def removeKernels(my, count, confirmed, keepdevel):
 
     print "I will remove the following %s kernel related packages:" % len(toremove)
     for po in toremove:
-        print "%s" % po
+        print po.hdr.sprintf(qf)
 
     if not confirmed:
         if not userconfirm():
@@ -442,6 +442,9 @@ def parseArgs():
       help="Do not remove kernel-devel packages when removing kernels")
     parser.add_option("-c", dest="conffile", action="store",
                 default='/etc/yum.conf', help="config file location")
+    parser.add_option("--qf", "--queryformat", dest="qf", action="store",
+                      default='%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}',
+                      help="Query format to use for output.")
 
     (opts, args) = parser.parse_args()
     if not exactlyOne((opts.problems,opts.leaves,opts.kernels,opts.orphans, opts.dupes, opts.cleandupes)): 
@@ -460,20 +463,21 @@ def main():
         if os.geteuid() != 0:
             print "Error: Cannot remove kernels as a user, must be root"
             sys.exit(1)
-        removeKernels(my, opts.kernelcount, opts.confirmed, opts.keepdevel)
+        removeKernels(my, opts.kernelcount, opts.confirmed, opts.keepdevel,
+                      opts.qf)
         sys.exit(0)
     
     if (opts.leaves):
         listLeaves(my, opts.all_nodes, re.compile(opts.leaf_regex, re.IGNORECASE),
-                opts.exclude_devel, opts.exclude_bin)
+                opts.exclude_devel, opts.exclude_bin, opts.qf)
         sys.exit(0)
 
     if (opts.orphans):
-        listOrphans(my)
+        listOrphans(my, opts.qf)
         sys.exit(0)
 
     if opts.dupes:
-        printDupes(my)
+        printDupes(my, opts.qf)
         sys.exit(0)
 
     if opts.cleandupes:
@@ -481,7 +485,7 @@ def main():
             print "Error: Cannot remove packages as a user, must be root"
             sys.exit(1)
     
-        cleanOldDupes(my, opts.confirmed)
+        cleanOldDupes(my, opts.confirmed, opts.qf)
         sys.exit(0)
             
     if not opts.quiet:
@@ -489,7 +493,7 @@ def main():
     pkgs = getLocalRequires(my)
     if not opts.quiet:
         print "Processing all local requires"
-    provsomething = buildProviderList(my,pkgs,opts.problems)
+    provsomething = buildProviderList(my,pkgs,opts.problems,opts.qf)
     
 if __name__ == '__main__':
     main()


More information about the Yum-commits mailing list