blob: 0dd391624278f8eadbbe8cd93aca3fab6ce508f5 [file] [log] [blame]
Fred Drake73f0a4e2001-12-08 00:26:07 +00001#! /usr/bin/env python
2#
3# Simple script to create the table that lists the packages available
4# for download. This expects the downloadable files and the Makefile
5# to be in the current directory.
6#
7# The output of this script can be pasted directly into the download
8# page for the documentation.
9
10import os
11import sys
12
13from os.path import isfile
14
15
16PKG_TYPES = [
17 # human name, filename prefix
18 ("HTML", "html"),
19 ("PDF (US-Letter)", "pdf-letter"),
20 ("PDF (A4)", "pdf-a4"),
21 ("PostScript (US-Letter)", "postscript-letter"),
22 ("PostScript (A4)", "postscript-a4"),
23 ("GNU info", "info"),
24 ("iSilo", "isilo"),
25 ("LaTeX", "latex"),
26 ]
27
28
29fp = open("Makefile")
30for line in fp:
31 line = line.replace('=', ' ', 1)
32 parts = line.split()
33 if parts[:1] == ["RELEASE"]:
34 release = parts[1]
35 break
36else:
37 print >>sys.stderr, "Could not locate RELEASE in Makefile."
38 sys.exit(1)
39
40print '''\
41<table border="1" cellpadding="3" align="center">
42 <thead>
Fred Drake816aebd2002-10-14 15:45:11 +000043 <tr bgcolor="#99ccff"><th rowspan="2">Content</th>
Fred Draked691c422003-05-29 19:46:29 +000044 <th colspan="3">Format</th></tr>
45 <tr bgcolor="#99ccff"><th>ZIP</th><th>GZip</th><th>BZip2</th></tr>
Fred Drake73f0a4e2001-12-08 00:26:07 +000046 </thead>
47 <tbody>'''
48
49# formatted using FILE_TEMPLATE % (release, prefix, release, extension)
50FILE_TEMPLATE = '''\
51 <td><a href="../../ftp/python/doc/%s/%s-%s%s"
52 >%dK</a></td>'''
53
54NO_FILE_TEMPLATE = '''\
55 <td>&nbsp;</td>'''
56
57def get_size(prefix, ext):
58 fn = "%s-%s%s" % (prefix, release, ext)
59 return int(round(os.path.getsize(fn) / 1024.0))
60
Fred Drakef834ecb2002-10-14 15:04:33 +000061def get_file_cell(prefix, ext, have):
62 if have:
63 kb = get_size(prefix, ext)
64 return FILE_TEMPLATE % (release, prefix, release, ext, kb)
65 else:
66 return NO_FILE_TEMPLATE
67
Fred Drake73f0a4e2001-12-08 00:26:07 +000068for name, prefix in PKG_TYPES:
69 zip_fn = "%s-%s.zip" % (prefix, release)
70 tgz_fn = "%s-%s.tgz" % (prefix, release)
71 bz2_fn = "%s-%s.tar.bz2" % (prefix, release)
72
73 have_zip = isfile(zip_fn)
74 have_tgz = isfile(tgz_fn)
75 have_bz2 = isfile(bz2_fn)
76
77 if have_zip or have_tgz or have_bz2:
78 print " <tr><td>%s</td>" % name
79
Fred Drakef834ecb2002-10-14 15:04:33 +000080 print get_file_cell(prefix, ".zip", have_zip)
81 print get_file_cell(prefix, ".tgz", have_tgz)
82 print get_file_cell(prefix, ".tar.bz2", have_bz2)
Fred Drake73f0a4e2001-12-08 00:26:07 +000083
84 print " </tr>"
85
86print '''\
87 </tbody>
88</table>
89'''