-class YumCreateRepo(object):
- def __init__(self):
- self.ts = initReadOnlyTransaction()
- self.pkglist = []
- self.conf = CreateRepoConfig()
-
- def add_package(self, rpmfile):
- # take a file
- # check it to make sure it:
- # exists and is an rpm
- # can be opened
- # whatever else
- if not os.path.exists(rpmfile):
- return False
-
- self.pkglist.append(rpmfile)
- return True
-
-
- def read_in_package(self, rpmfile):
- # XXX fixme try/excepts here
- po = CreateRepoPackage(self.ts, rpmfile)
- return po
-
- def dump_metadata(self, pkglist=None):
- if pkglist is None:
- pkglist = self.pkglist
-
- primary = open('primary-test.xml', 'w')
- primary.write("""<?xml version="1.0" encoding="UTF-8"?>
-<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="%d">""" % len(pkglist))
-
- filelists = open('filelists-test.xml', 'w')
- filelists.write("""<?xml version="1.0" encoding="UTF-8"?>
-<filelists xmlns="http://linux.duke.edu/metadata/filelists" packages="%s">""" % len(pkglist))
-
- other = open('other-test.xml', 'w')
- other.write("""<?xml version="1.0" encoding="UTF-8"?>
-<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="%s">""" % len(pkglist))
-
- for pkg in pkglist:
- po = self.read_in_package(pkg)
- primary.write(po.do_primary_xml_dump())
- filelists.write(po.do_filelists_xml_dump())
- other.write(po.do_other_xml_dump())
-
-
- primary.write("\n</metadata>\n")
- primary.close()
- filelists.write("\n</filelists>\n")
- filelists.close()
- other.write("\n</otherdata>\n")
- other.close()
-
-
-def main(args):
- ycr = YumCreateRepo()
- # parseargs get the path for the output and opts
- #
- # determine package lists
-
- # make metadata
-
- for pkg in args:
- ycr.add_package(pkg)
- ycr.dump_metadata()
-
-if __name__ == "__main__":
- main(sys.argv[1:])
-
-
setattr(conf, opt.dest, getattr(opts, opt.dest))
directory = directories[0]
- print directory
directory = os.path.normpath(directory)
- print directory
if conf.split:
pass
elif os.path.isabs(directory):
else:
conf.basedir = os.path.realpath(conf.basedir)
- print directory
- print conf.basedir
-
+
if not opts.outputdir:
conf.outputdir = os.path.join(conf.basedir, directory)
if conf.groupfile: