[Rpm-metadata] createrepo/__init__.py createrepo/yumbased.py genpkgmetadata.py

Seth Vidal skvidal at linux.duke.edu
Tue Jan 22 17:44:27 UTC 2008


 createrepo/__init__.py |    5 +++++
 createrepo/yumbased.py |    6 +++++-
 genpkgmetadata.py      |    5 +++++
 3 files changed, 15 insertions(+), 1 deletion(-)

New commits:
commit be282761d79dab9d02b8cfd2ce5985cb3f215596
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Tue Jan 22 12:44:19 2008 -0500

    add changelog-limit option to restrict the number of changelogs we add, by default

diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 7d1e5e1..eaa79b8 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -85,6 +85,8 @@ class MetaDataConfig(object):
         self.mdtimestamp = 0
         self.directory = None
         self.directories = []
+        self.changelog_limit = None # needs to be an int or None
+        
 
 class SimpleMDCallBack(object):
     def errorlog(self, thing):
@@ -367,6 +369,9 @@ class MetaDataGenerator:
             po = yumbased.CreateRepoPackage(self.ts, rpmfile)
         except Errors.MiscError, e:
             raise MDError, "Unable to open package: %s" % e
+        # if we're going to add anything in from outside, here is where
+        # you can do it
+        po.crp_changelog_limit = self.conf.changelog_limit
         po.crp_cachedir = self.conf.cachedir
         return po
 
diff --git a/createrepo/yumbased.py b/createrepo/yumbased.py
index 816df6c..ac03bdc 100644
--- a/createrepo/yumbased.py
+++ b/createrepo/yumbased.py
@@ -372,7 +372,11 @@ class CreateRepoPackage(YumLocalPackage):
         if not self.changelog:
             return ""
         msg = "\n"
-        for (ts, author, content) in self.changelog:            
+        clog_count = 0
+        for (ts, author, content) in reversed(sorted(self.changelog)):
+            if self.crp_changelog_limit and clog_count >= self.crp_changelog_limit:
+                break
+            clog_count += 1
             c = self.xml_node.newChild(None, "changelog", None)
             c.addContent(utils.utf8String(content))
             c.newProp('author', utils.utf8String(author))
diff --git a/genpkgmetadata.py b/genpkgmetadata.py
index a43b281..e46b0a7 100755
--- a/genpkgmetadata.py
+++ b/genpkgmetadata.py
@@ -81,6 +81,8 @@ def parseArgs(args, conf):
     parser.add_option("-S", "--skip-symlinks", dest="skip_symlinks",
                       default=False, action="store_true",
                       help="ignore symlinks of packages")
+    parser.add_option("--changelog-limit", dest="changelog_limit",
+                      default=None, help="only import the last N changelog entries")
 
     (opts, argsleft) = parser.parse_args()
     if len(argsleft) > 1 and not opts.split:
@@ -121,6 +123,9 @@ def parseArgs(args, conf):
             
     conf.pkglist = lst
 
+    if conf.changelog_limit: # make sure it is an int, not a string
+        conf.changelog_limit = int(conf.changelog_limit)
+        
     return conf
 
 class MDCallBack(object):



More information about the Rpm-metadata mailing list