summaryrefslogtreecommitdiffstats
path: root/Doc/tools/mkpkglist
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-12-08 00:26:07 (GMT)
committerFred Drake <fdrake@acm.org>2001-12-08 00:26:07 (GMT)
commit73f0a4ecd76549dae9a58aa6d7949d4d2e583d03 (patch)
tree037375a9a2275b85baec70789436422294618b3d /Doc/tools/mkpkglist
parentf9d580346b68bcf995b852eb8f029df6ca7dae4f (diff)
downloadcpython-73f0a4ecd76549dae9a58aa6d7949d4d2e583d03.zip
cpython-73f0a4ecd76549dae9a58aa6d7949d4d2e583d03.tar.gz
cpython-73f0a4ecd76549dae9a58aa6d7949d4d2e583d03.tar.bz2
Script to generate the table of distribution packages, plugging in the size
information automatically.
Diffstat (limited to 'Doc/tools/mkpkglist')
-rwxr-xr-xDoc/tools/mkpkglist97
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>&nbsp;</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>
+'''