diff options
-rwxr-xr-x | Doc/tools/mkpkglist | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Doc/tools/mkpkglist b/Doc/tools/mkpkglist new file mode 100755 index 0000000..86965bb --- /dev/null +++ b/Doc/tools/mkpkglist @@ -0,0 +1,97 @@ +#! /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 '''\ +<table border="1" cellpadding="3" align="center"> + <thead> + <tr bgcolor="#3399ff"><th rowspan="2">Content</th> + <th colspan="3">Format</th> + </tr> + <tr bgcolor="#3399ff"><th>ZIP</th><th>GZip</th><th>BZip2</th> + </thead> + <tbody>''' + +# formatted using FILE_TEMPLATE % (release, prefix, release, extension) +FILE_TEMPLATE = '''\ + <td><a href="../../ftp/python/doc/%s/%s-%s%s" + >%dK</a></td>''' + +NO_FILE_TEMPLATE = '''\ + <td> </td>''' + +def get_size(prefix, ext): + fn = "%s-%s%s" % (prefix, release, ext) + return int(round(os.path.getsize(fn) / 1024.0)) + +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 " <tr><td>%s</td>" % name + + if have_zip: + kb = get_size(prefix, ".zip") + print FILE_TEMPLATE % (release, prefix, release, ".zip", kb) + else: + print NO_FILE_TEMPLATE + + if have_tgz: + kb = get_size(prefix, ".tgz") + print FILE_TEMPLATE % (release, prefix, release, ".tgz", kb) + else: + print NO_FILE_TEMPLATE + + if have_bz2: + kb = get_size(prefix, ".tar.bz2") + print FILE_TEMPLATE % (release, prefix, release, ".tar.bz2", kb) + else: + print NO_FILE_TEMPLATE + + print " </tr>" + +print '''\ + </tbody> +</table> +''' |