diff --git a/dumpMetadata.py b/dumpMetadata.py index 396435a..af1f24e 100644 --- a/dumpMetadata.py +++ b/dumpMetadata.py @@ -251,7 +251,10 @@ class RpmMetaData: fo = os.fdopen(fd, 'rb') self.pkgid = self.doChecksumCache(fo) fo.seek(0) - (self.rangestart, self.rangeend) = byteranges(fo) + if rpm.__name__ == "rpm" : + (self.rangestart, self.rangeend) = byteranges(fo) + else : + (self.rangestart, self.rangeend) = (0,0) fo.close() del fo del fd diff --git a/genpkgmetadata.py b/genpkgmetadata.py index 22b7c85..50f0075 100755 --- a/genpkgmetadata.py +++ b/genpkgmetadata.py @@ -64,6 +64,8 @@ def usage(retval=1): -p, --pretty = output xml files in pretty format. --update = update existing metadata (if present) -d, --database = generate the sqlite databases. + --pkgtype = create repository with packages of type + (only 'deb' is currently supported) """) sys.exit(retval) @@ -99,7 +101,7 @@ class MetaDataGenerator: def checkTimeStamps(self, directory): if self.cmds['checkts']: - files = self.getFileList(self.cmds['basedir'], directory, '.rpm') + files = self.getFileList(self.cmds['basedir'], directory, self.cmds['pkgext']) files = self.trimRpms(files) for f in files: fn = os.path.join(self.cmds['basedir'], directory, f) @@ -138,7 +140,7 @@ class MetaDataGenerator: #and scan the old repo self.oldData = readMetadata.MetadataIndex(self.cmds['outputdir'], basefile, flfile, otherfile, opts) - files = self.getFileList(self.cmds['basedir'], directory, '.rpm') + files = self.getFileList(self.cmds['basedir'], directory, self.cmds['pkgext']) files = self.trimRpms(files) self.pkgcount = len(files) self.openMetadataDocs() @@ -346,7 +348,7 @@ class SplitMetaDataGenerator(MetaDataGenerator): return filematrix = {} for mydir in directories: - filematrix[mydir] = self.getFileList(self.cmds['basedir'], mydir, '.rpm') + filematrix[mydir] = self.getFileList(self.cmds['basedir'], mydir, self.cmds['pkgext']) self.trimRpms(filematrix[mydir]) self.pkgcount += len(filematrix[mydir]) @@ -414,6 +416,7 @@ def parseArgs(args): cmds['file-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*', '^\/usr\/lib\/sendmail$'] cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*'] cmds['skip-symlinks'] = False + cmds['pkgext'] = '.rpm' try: gopts, argsleft = getopt.getopt(args, 'phqVvndg:s:x:u:c:o:CS', ['help', 'exclude=', @@ -421,7 +424,7 @@ def parseArgs(args): 'baseurl=', 'groupfile=', 'checksum=', 'version', 'pretty', 'split', 'outputdir=', 'noepoch', 'checkts', 'database', 'update', - 'skip-symlinks']) + 'skip-symlinks', 'pkgtype=']) except getopt.error, e: errorprint(_('Options Error: %s.') % e) usage() @@ -493,6 +496,15 @@ def parseArgs(args): cmds['database'] = True elif arg in ['-S', '--skip-symlinks']: cmds['skip-symlinks'] = True + elif arg == '--pkgtype': + if a == "deb" : + import dpkg2rpm + __builtins__.globals()['rpm'] = dpkg2rpm + __builtins__.globals()['dumpMetadata'].rpm = dpkg2rpm + cmds['pkgext'] = '.deb' + else : + errorprint(_('Package system %s not supported') % a) + usage() except ValueError, e: errorprint(_('Options Error: %s') % e)