Mercurial > forge
changeset 2461:f4dda5563e72 octave-forge
Updated www/build-www
author | hauberg |
---|---|
date | Mon, 11 Sep 2006 17:44:35 +0000 |
parents | cb93fc1fc8d2 |
children | 3c45bce3cbb9 |
files | www/build-www.py |
diffstat | 1 files changed, 74 insertions(+), 41 deletions(-) [+] |
line wrap: on
line diff
--- a/www/build-www.py Sun Sep 10 23:28:53 2006 +0000 +++ b/www/build-www.py Mon Sep 11 17:44:35 2006 +0000 @@ -47,19 +47,10 @@ raise; ## Write header - fid = open(outdir + "/index.html", "w"); - fid.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">\n'); - fid.write('<html lang="en">\n'); - fid.write(' <head>\n'); - fid.write(' <title>Octave-Forge: ' + desc['name'] + '</title>\n'); - fid.write(' <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n'); - fid.write(' <link type="text/css" rel="stylesheet" href="http://octave.org/octave.css">\n'); - fid.write(' <link type="text/css" rel="stylesheet" href="../package.css">\n'); - fid.write(' </head>\n\n'); - fid.write(' <body>\n'); + fid = open(outdir + "/index.in", "w"); + fid.write("__HEADER__(`The " + desc['name'] + " package')"); ## Write important data - fid.write(" <h2>" + desc["title"] + "</h2>\n"); fid.write(' <table id="main_package_table">\n'); fid.write(' <tr><td>Package Name:</td><td>' + desc["name"] + "</td></tr>\n"); fid.write(' <tr><td>Package Version:</td><td>' + desc["version"] + "</td></tr>\n"); @@ -79,22 +70,63 @@ fid.write(' </div>\n\n'); ## Write less important data - already_shown_keys = ["title", "name", "version", "date", "author", "maintainer", "description", "html-file"]; keys = desc.keys(); - if (len(keys) > len(already_shown_keys)): - fid.write(" <h3>Other information</h3>\n"); - fid.write(' <table id="extra_package_table">\n'); - for k in keys: - if (already_shown_keys.count(k) == 0): - value = desc[k]; - fid.write(" <tr><td>" + k + "</td><td>" + value + "</td></tr>\n"); - fid.write(" </table>\n"); + fid.write(" <h3>Other information</h3>\n"); + fid.write(' <table id="extra_package_table">\n'); + ## License + fid.write(' <tr><td>License: </td><td><a href="license.html">'); + if (desc.has_key("license")): + fid.write(desc['license']); + else: + fid.write('details'); + fid.write('</a></td></tr>\n'); + ## URL + if (desc.has_key("url")): + fid.write(' <tr><td>Web page: </td><td><a href="' + desc['url'] + '">'); + fid.write(desc['url']); + fid.write('</a></td></tr>\n'); + ## Dependencies + if (desc.has_key("depends")): + fid.write(' <tr><td>Dependencies: </td><td>'); + fid.write(desc['depends']); + fid.write('</td></tr>\n'); + ## Everything else + already_shown_keys = ["title", "name", "version", "date", "author", + "maintainer", "description", "html-file", + "license", "url", "depends"]; + for k in keys: + if (already_shown_keys.count(k) == 0): + value = desc[k]; + fid.write(" <tr><td>" + k + ":</td><td>" + value + "</td></tr>\n"); + fid.write(" </table>\n"); ## Write footer - fid.write(" </body>\n</html>\n"); + fid.write("__TRAILER__\n"); + fid.close(); + return desc; + +def create_license_html(package_name, packdir, outdir): + ## Read License + filename = packdir + "/COPYING"; + fid = open(filename, 'r'); + license = fid.readlines(); fid.close(); + ## Write output + fid = open(outdir + "/license.in", "w"); + fid.write("__HEADER__(`The " + package_name + " package')\n"); + fid.write("<h3>The license terms for the " + package_name + " package are as follows</h3>\n"); + fid.write('<p><textarea rows="20" cols="80" readonly>'); + for c in license: + fid.write(c) + fid.write('</textarea></p>\n'); + fid.write('<p><a href="index.html">Back to the package page</a></p>\n'); + fid.write("__TRAILER__\n"); + fid.close(); + + def rm_rf(p): + #print("Deleting " + p); for root, dirs, files in os.walk(p, topdown=False): for name in files: os.remove(os.path.join(root, name)); @@ -108,40 +140,41 @@ rm_rf(outdir); os.mkdir(outdir); try: - create_index_html(packdir, outdir) - return 1; + desc = create_index_html(packdir, outdir); + create_license_html(desc['name'], packdir, outdir); + return desc; except: rm_rf(outdir); - return 0; - return 0; + raise Exception('spam', 'eggs'); + raise Exception('spam', 'eggs'); def main(): main_dir = "../main/"; packages = os.listdir(main_dir); - ## Start main index file - index = open("index.html", "w"); - index.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">\n'); - index.write('<html lang="en">\n'); - index.write(' <head>\n'); - index.write(' <title>Octave-Forge packages</title>\n'); - index.write(' <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n'); - index.write(' <link type="text/css" rel="stylesheet" href="http://octave.org/octave.css">\n'); - index.write(' <link type="text/css" rel="stylesheet" href="package.css">\n'); - index.write(' </head>\n\n'); - index.write(' <body>\n'); + ## Start the package file + index = open("packages.in", "w"); + index.write("__HEADER__(`Packages')"); + index.write('<p>The following packages are currently available in the repository.\n'); + index.write("If you don't know how to install the packages please read the\n"); + index.write('relevant part of the <a href="FAQ.html#install">FAQ</a>.\n</p>'); for i in range(0, len(packages)): p = packages[i]; packdir = main_dir + p; outdir = "./" + p; - s = handle_package(packdir, outdir); - if (s): - index.write('<a href="' + outdir + '/index.html">' + p + '</a><br>\n'); - else: + try: + desc = handle_package(packdir, outdir); + index.write('<div class="package">\n'); + index.write(' <b>' + desc['name'] + '</b>\n'); + index.write('<p>' + desc['description'][:100] + '...</p>\n'); + index.write('<p class="package_link">» <a href="' + outdir + '/index.html">details</a> | '); + index.write('<a href="' + outdir + '/index.html">download</a></p>\n'); + index.write('</div>\n'); + except: print("Skipping " + p); - index.write(' </body>\n</html>\n'); + index.write('__TRAILER__\n'); index.close(); main();