Index: genpkgmetadata.py =================================================================== RCS file: /cvsroot/metadata/cvs-root/generate/genpkgmetadata.py,v retrieving revision 1.48 diff -u -b -B -r1.48 genpkgmetadata.py --- genpkgmetadata.py 13 Jan 2006 06:24:50 -0000 1.48 +++ genpkgmetadata.py 15 Jan 2006 10:07:47 -0000 @@ -27,11 +27,14 @@ import libxml2 import string import fnmatch +import urlgrabber import dumpMetadata from dumpMetadata import _gzipOpen __version__ = '0.4.3' +update_info_url = 'http://lewk.org/cgi-bin/genpkgmetadata.cgi' + def errorprint(stuff): print >> sys.stderr, stuff @@ -51,6 +54,7 @@ ( relative to directory-of-packages) -v, --verbose = run verbosely -c, --cachedir = specify which dir to use for the checksum cache + -U, --update-info-location = acquire package update metadata -h, --help = show this help -V, --version = output version -p, --pretty = output xml files in pretty format. @@ -213,6 +217,18 @@ node.unlinkNode() node.freeNode() del node + try: + if self.cmds['update-info-location']: + print "\nQuerying update-info-location: %s" % (self.cmds['update-info-location'] + '?pkg=%s' % file) + metadata = urlgrabber.urlopen(self.cmds['update-info-location'] + + '?pkg=%s' % string.join(file.split('.')[-2:], '.')) + metadata.filename = os.path.join(self.cmds['basedir'], + self.cmds['update-info-dir']) + metadata._do_grab() + metadata.close() + except Exception, e: + pass + return current @@ -348,10 +364,11 @@ cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*'] try: - gopts, argsleft = getopt.getopt(args, 'phqVvg:s:x:u:c:', ['help', 'exclude=', + gopts, argsleft = getopt.getopt(args, 'phqVvg:s:x:u:c:U:', ['help', 'exclude=', 'quiet', 'verbose', 'cachedir=', 'basedir=', 'baseurl=', 'groupfile=', 'checksum=', - 'version', 'pretty', 'split']) + 'version', 'pretty', 'split', + 'update-info-location=']) except getopt.error, e: errorprint(_('Options Error: %s.') % e) usage() @@ -409,6 +426,8 @@ elif arg in ['-c', '--cachedir']: cmds['cache'] = True cmds['cachedir'] = a + elif arg in ['-U', '--update-info-location']: + cmds['update-info-location'] = update_info_url elif arg == '--basedir': cmds['basedir'] = a @@ -424,6 +443,7 @@ cmds['tempdir'] = '.repodata' cmds['finaldir'] = 'repodata' cmds['olddir'] = '.olddata' + cmds['update-info-dir'] = 'update-info' return cmds, directories @@ -484,6 +504,11 @@ if os.path.exists(os.path.join(cmds['basedir'], cmds['olddir'])): errorprint(_('Old data directory exists, please remove: %s') % cmds['olddir']) sys.exit(1) + + if cmds.has_key('update-info-location'): + if not checkAndMakeDir(os.path.join(cmds['basedir'], cmds['update-info-dir'])): + errorprint(_('Error: cannot open/write to update info dir %s' % a)) + usage() # make sure we can write to where we want to write to: for direc in ['tempdir', 'finaldir']: