thomas: server rpmdircmp,1.2,1.3

cvs at kolab.org cvs at kolab.org
Thu Mar 13 18:30:49 CET 2008


Author: thomas

Update of /kolabrepository/server
In directory doto:/tmp/cvs-serv20931

Modified Files:
	rpmdircmp 
Log Message:
rpmdircmp: Be able to run on binary rpms, too


Index: rpmdircmp
===================================================================
RCS file: /kolabrepository/server/rpmdircmp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- rpmdircmp	13 Mar 2008 17:08:38 -0000	1.2
+++ rpmdircmp	13 Mar 2008 17:30:47 -0000	1.3
@@ -7,7 +7,7 @@
 # This program is free software under the GPL (>=v2)
 
 """
-rpmdircmp olddir newdir
+rpmdircmp olddir newdir [ext]
 
 Prints list of removed/added/updated/unchanged rpm packages
 """
@@ -30,9 +30,10 @@
         _packagercache[rpm] = packager
     return packager
 
-def rpmdir2list(rpmdir):
-    """Returns list of all .src.rpm files in the given directory.
+def rpmdir2list(rpmdir, ext):
+    """Returns list of all rpm files in the given directory.
 
+    rpm files must have the extension "ext", e.g. ".src.rpm".
     The list contains tuples: (name, version, release, packager)
     """
     rpms = []
@@ -42,16 +43,16 @@
     for rpm in dirlist:
         sys.stderr.write("%d ...    \r" % todo)
         todo -= 1
-        if rpm.endswith('.src.rpm'):
-            entry = rpm[:-len('src.rpm')-1].rsplit('-', 2)
+        if rpm.endswith(ext):
+            entry = rpm[:-len(ext)-1].rsplit('-', 2)
             entry.append(rpmpackager(rpmdir, rpm))
             rpms.append(tuple(entry))
     sys.stderr.write('OK.        \n')
     return rpms
 
-def rpmsets(rpmdir):
+def rpmsets(rpmdir, ext):
     names = {}
-    rpms = rpmdir2list(rpmdir)
+    rpms = rpmdir2list(rpmdir, ext)
     for rpm in rpms:
         name = rpm[0]
         if name in names:
@@ -59,11 +60,11 @@
         names[name] = rpm
     return set(rpms), set(names), names
 
-if len(sys.argv[1:]) != 2:
-    sys.stderr.write("%s\n" % __doc__)
-else:
-    oldrpms, oldnames, olddict = rpmsets(sys.argv[1])
-    newrpms, newnames, newdict = rpmsets(sys.argv[2])
+def main(olddir, newdir, ext=None):
+    if not ext:
+        ext = '.src.rpm'
+    oldrpms, oldnames, olddict = rpmsets(olddir, ext)
+    newrpms, newnames, newdict = rpmsets(newdir, ext)
 
     removed = [olddict[name] for name in list(oldnames.difference(newnames))]
     added = [newdict[name] for name in list(newnames.difference(oldnames))]
@@ -91,4 +92,11 @@
                     sys.stdout.write("\t%s-%s-%s\n" % rpm[:3])
             if wrote_title:
                 sys.stdout.write("\n")
+
+
+if __name__ == "__main__":
+    if 2 <= len(sys.argv[1:]) <= 3:
+        main(*sys.argv[1:])
+    else:
+        sys.stderr.write("%s\n" % __doc__)
 





More information about the commits mailing list