createrepo/merge.py

[email protected]
Newsgroups gmane.linux.rpm.metadata
Message-ID <[email protected]>
 createrepo/merge.py |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

New commits:
commit d56ca1ee72c924e1994c5e9043d5be81552bdda5
Author: Seth Vidal <[email protected]>
Date:   Fri Jan 23 17:27:22 2009 -0500

    add init options to specify your own yumbase object, mdconf object md generator class

diff --git a/createrepo/merge.py b/createrepo/merge.py
index d096c61..d2997b7 100644
--- a/createrepo/merge.py
+++ b/createrepo/merge.py
@@ -35,13 +35,23 @@ import tempfile
 
 
 class RepoMergeBase():
-    def __init__(self, repolist=[]):
+    def __init__(self, repolist=[], yumbase=None, mdconf=None, mdbase_class=None ):
         self.repolist = repolist
         self.outputdir = '%s/merged_repo' % os.getcwd()
         self.exclude_tuples = []
         self.sort_func = self._sort_func # callback function to magically sort pkgs
-        self.mdconf = createrepo.MetaDataConfig()
-        self.yumbase = yum.YumBase()
+        if not mdconf:
+            self.mdconf = createrepo.MetaDataConfig()
+        else:
+            self.mdconf = mdconf
+        if not mdbase_class
+            self.mdbase_class = createrepo.MetaDataGenerator
+        else:
+            self.mdbase_class = mdbase_class
+        if not yumbase:
+            self.yumbase = yum.YumBase()
+        else:
+            self.yumbase = yumbase
         self.yumbase.conf.cachedir = getCacheDir()
         self.yumbase.conf.cache = 0
         # default to all arches
@@ -121,7 +131,7 @@ class RepoMergeBase():
         if not os.path.exists(self.mdconf.directory):
             os.makedirs(self.mdconf.directory)
 
-        mdgen = createrepo.MetaDataGenerator(config_obj=self.mdconf)
+        mdgen = self.mdbase_class(config_obj=self.mdconf)
         mdgen.doPkgMetadata()
         mdgen.doRepoMetadata()
         mdgen.doFinalMove()
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.