import stat
from genpkgmetadata import _gzipOpen
+def returnFD(filename):
+ try:
+ fdno = os.open(filename, os.O_RDONLY)
+ except OSError:
+ raise MDError, "Error opening file"
+ return fdno
+
def returnHdr(ts, package):
"""hand back the rpm header or raise an Error if the pkg is fubar"""
try:
self.localurl = url
self.relativepath = filename
- self.hdr = returnHdr(ts, filename)
- self.pkgid = getChecksum(sumtype, filename)
- (self.rangestart, self.rangeend) = byteranges(filename)
+ self.fd = returnFD(filename)
+ self.hdr = returnHdr(ts, self.fd)
+ fo = os.fdopen(self.fd)
+ self.pkgid = getChecksum(sumtype, fo)
+ fo.seek(0)
+ (self.rangestart, self.rangeend) = byteranges(fo)
# setup our regex objects
fileglobs = ['.*bin\/.*', '^\/etc\/.*', '^\/usr\/lib\/sendmail$']
cmds['groupfile'] = None
cmds['sumtype'] = 'sha'
cmds['pretty'] = 0
+ cmds['file-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*', '^\/usr\/lib\/sendmail$']
+ cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*']
try:
gopts, argsleft = getopt.getopt(args, 'phqVvg:s:x:u:', ['help', 'exclude=',
if __name__ == "__main__":
if len(sys.argv) > 1:
if sys.argv[1] == 'profile':
- import profile
- profile.run('main(sys.argv[2:])')
+ import hotshot
+ p = hotshot.Profile(os.path.expanduser("~/createrepo.prof"))
+ p.run('main(sys.argv[2:])')
+ p.close()
else:
main(sys.argv[1:])
else: