#!/usr/bin/python import glob, sqlite, sys, re, os, string import darlib htmldir = '/dar/tmp/html' index_template = ''' %(alphabeticlist)s %(categorylist)s ''' category_template = ''' %(packagelist)s ''' package_template = ''' %(summary)s
%(description)s

Latest release: %(version)s-%(release)s

Website: %(url)s
License: %(license)s
Group: %(category)s
Maintainer: %(authority)s
%(rpmlist)s ''' def convgroup(str): return str.translate(string.maketrans('/ ','-.')).lower() sys.stdout = os.fdopen(1, 'w', 0) con, cur = darlib.opendb() try: os.mkdir(htmldir) except: pass # FIXME: Create the alphabetic list categorylist = '' alphabeticlist = 'TBD' cur.execute('select distinct category from spec order by category') for (category,) in cur.fetchall(): print category # FIXME: Add license when rpmdb has been improved cur.execute('select name, version, release, authority, summary, description, category, url, license, parent, upstream from spec where category = "%s" order by name' % category) rec = {} packagelist = '' categorysize = 0 for rec['name'], rec['version'], rec['release'], rec['authority'], rec['summary'], rec['description'], rec['category'], rec['url'], rec['license'], rec['parent'], rec['upstream'] in cur.fetchall(): packagelist += '%(name)s: %(summary)s
\n' % rec try: os.mkdir(os.path.join(htmldir, rec['name'])) except: pass # FIXME: Remove license when rpmdb has been improved and get authority fom specdb rec['categoryidx'] = convgroup(category) rec['rpmlist'] = '

Package list (TBD)

TBD' # cur.execute('select version, release, filename from pkg where parent = "%s" order by version' % rec['name']) cur.execute('select distinct filename from pkg where parent = "%s" order by version, filename' % rec['name']) for (filename, ) in cur.fetchall(): rec['rpmlist'] += '
%s
\n' % filename open(os.path.join(htmldir, rec['name'], 'index.php'), 'w').write(package_template % rec) categorysize+=1 rec = { 'category': category, 'categoryidx': convgroup(category), 'categorysize': categorysize, 'packagelist': packagelist } categorylist += '%(category)s (%(categorysize)s)
\n' % rec open(os.path.join(htmldir, 'group-' + convgroup(category)) + '.php', 'w').write(category_template % rec) # FIXME: Add alphabetic group files + index rec = { 'categorylist': categorylist, 'alphabeticlist': 'alphabeticlist' } open(os.path.join(htmldir, 'index.php'), 'w').write(index_template % rec)