#! /usr/bin/env python # # Simple script to create the table that lists the packages available # for download. This expects the downloadable files and the Makefile # to be in the current directory. # # The output of this script can be pasted directly into the download # page for the documentation. import os import sys from os.path import isfile PKG_TYPES = [ # human name, filename prefix ("HTML", "html"), ("PDF (US-Letter)", "pdf-letter"), ("PDF (A4)", "pdf-a4"), ("PostScript (US-Letter)", "postscript-letter"), ("PostScript (A4)", "postscript-a4"), ("GNU info", "info"), ("iSilo", "isilo"), ("LaTeX", "latex"), ] fp = open("Makefile") for line in fp: line = line.replace('=', ' ', 1) parts = line.split() if parts[:1] == ["RELEASE"]: release = parts[1] break else: print >>sys.stderr, "Could not locate RELEASE in Makefile." sys.exit(1) print '''\ ''' # formatted using FILE_TEMPLATE % (release, prefix, release, extension) FILE_TEMPLATE = '''\ ''' NO_FILE_TEMPLATE = '''\ ''' def get_size(prefix, ext): fn = "%s-%s%s" % (prefix, release, ext) return int(round(os.path.getsize(fn) / 1024.0)) def get_file_cell(prefix, ext, have): if have: kb = get_size(prefix, ext) return FILE_TEMPLATE % (release, prefix, release, ext, kb) else: return NO_FILE_TEMPLATE for name, prefix in PKG_TYPES: zip_fn = "%s-%s.zip" % (prefix, release) tgz_fn = "%s-%s.tgz" % (prefix, release) bz2_fn = "%s-%s.tar.bz2" % (prefix, release) have_zip = isfile(zip_fn) have_tgz = isfile(tgz_fn) have_bz2 = isfile(bz2_fn) if have_zip or have_tgz or have_bz2: print " " % name print get_file_cell(prefix, ".zip", have_zip) print get_file_cell(prefix, ".tgz", have_tgz) print get_file_cell(prefix, ".tar.bz2", have_bz2) print " " print '''\
Content Format
ZIPGZipBZip2
%dK 
%s
'''