From: Seth Vidal Date: Wed, 9 Jan 2008 03:59:28 +0000 (-0500) Subject: fix up a lot of xml creation errors and make --update work again X-Git-Tag: upstream/0.9.9~171 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ab5b8214208aee0a4b9fe8b6c954dfda3fa1abe;p=tools%2Fcreaterepo.git fix up a lot of xml creation errors and make --update work again --- diff --git a/createrepo/__init__.py b/createrepo/__init__.py index e12ae58..d834352 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -190,7 +190,7 @@ class MetaDataGenerator: primaryfilepath = os.path.join(self.conf.outputdir, self.conf.tempdir, self.conf.primaryfile) fo = _gzipOpen(primaryfilepath, 'w') fo.write('\n') - fo.write('\n' % + fo.write('' % self.pkgcount) return fo @@ -199,7 +199,7 @@ class MetaDataGenerator: filelistpath = os.path.join(self.conf.outputdir, self.conf.tempdir, self.conf.filelistsfile) fo = _gzipOpen(filelistpath, 'w') fo.write('\n') - fo.write('\n' % + fo.write('' % self.pkgcount) return fo @@ -208,7 +208,7 @@ class MetaDataGenerator: otherfilepath = os.path.join(self.conf.outputdir, self.conf.tempdir, self.conf.otherfile) fo = _gzipOpen(otherfilepath, 'w') fo.write('\n') - fo.write('\n' % + fo.write('' % self.pkgcount) return fo @@ -230,7 +230,7 @@ class MetaDataGenerator: current+=1 recycled = False sep = '-' - + print pkg # look to see if we can get the data from the old repodata # if so write this one out that way if self.conf.update: @@ -254,8 +254,10 @@ class MetaDataGenerator: self.flfile.write(po.do_filelists_xml_dump()) self.otherfile.write(po.do_other_xml_dump()) else: + if self.conf.verbose: + print "Using data from old metadata for %s" % pkg sep = '*' - primarynode, filenode, othernode = nodes + (primarynode, filenode, othernode) = nodes for node, outfile in ((primarynode,self.primaryfile), (filenode,self.flfile), @@ -263,10 +265,14 @@ class MetaDataGenerator: if node is None: break output = node.serialize('UTF-8', self.conf.pretty) - outfile.write(output) + if output: + outfile.write(output) + else: + if self.conf.verbose: + print "empty serialize on write to %s in %s" % (outfile, pkg) outfile.write('\n') - - self.oldData.freeNodes(pkg) + + self.oldData.freeNodes(pkg) if not self.conf.quiet: if self.conf.verbose: diff --git a/createrepo/readMetadata.py b/createrepo/readMetadata.py index 0d9dacf..5074f80 100644 --- a/createrepo/readMetadata.py +++ b/createrepo/readMetadata.py @@ -47,10 +47,10 @@ class MetadataIndex(object): self.pkg_ids = {} if self.opts.get('verbose'): print _("Scanning old repo data") - for file in self.files.values(): - if not os.path.exists(file): + for fn in self.files.values(): + if not os.path.exists(fn): #cannot scan - errorprint(_("Previous repo file missing: %s") % file) + errorprint(_("Previous repo file missing: %s") % fn) return root = libxml2.parseFile(self.files['base']).getRootElement() self._scanPackageNodes(root, self._handleBase) @@ -193,6 +193,19 @@ class MetadataIndex(object): if __name__ == "__main__": - #test code - attempts to read a repo in working directory - idx = MetadataIndex(".", "repodata/primary.xml.gz", "repodata/filelists.xml.gz", - "repodata/other.xml.gz", {'verbose':1}) + cwd = os.getcwd() + p = os.path.join(cwd, "repodata/primary.xml.gz") + f = os.path.join(cwd, "repodata/filelists.xml.gz") + o = os.path.join(cwd, "repodata/other.xml.gz") + opts = {'verbose':1, + 'pkgdir': cwd} + + idx = MetadataIndex(".", p, f, o, opts) + for fn in idx.basenodes.keys(): + a,b,c, = idx.getNodes(fn) + a.serialize() + b.serialize() + c.serialize() + idx.freeNodes(fn) + + diff --git a/createrepo/yumbased.py b/createrepo/yumbased.py index 144153a..237e968 100644 --- a/createrepo/yumbased.py +++ b/createrepo/yumbased.py @@ -132,18 +132,17 @@ class CreateRepoPackage(YumLocalPackage): %s %s