]> granicus.if.org Git - python/commitdiff
Script to generate the table of distribution packages, plugging in the size
authorFred Drake <fdrake@acm.org>
Sat, 8 Dec 2001 00:26:07 +0000 (00:26 +0000)
committerFred Drake <fdrake@acm.org>
Sat, 8 Dec 2001 00:26:07 +0000 (00:26 +0000)
information automatically.

Doc/tools/mkpkglist [new file with mode: 0755]

diff --git a/Doc/tools/mkpkglist b/Doc/tools/mkpkglist
new file mode 100755 (executable)
index 0000000..86965bb
--- /dev/null
@@ -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>
+'''