#! /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"),
    ]

getversioninfo = os.path.join(os.path.dirname(__file__), "getversioninfo")
fp = os.popen('"%s" "%s"' % (sys.executable, getversioninfo), "r")
release = fp.readline().strip()
fp.close()

print '''\

     Content
                           Format
     ZIP GZip BZip2

'''

# formatted using FILE_TEMPLATE % (release, prefix, release, extension)
FILE_TEMPLATE = '''\
         %dK'''

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)

    have_some = have_zip or have_tgz or have_bz2

    if not have_some:
        print "    <!--"
    print "    <tr><td>%s</td>" % 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 "      </tr>"
    if not have_some:
        print "      -->"

print '''\

'''
