#!/usr/bin/env python import sys, os, traceback, string import neo_cgi def log (s): sys.stderr.write("CGI: %s\n" % s) def exceptionString(): import StringIO ## get the traceback message sfp = StringIO.StringIO() traceback.print_exc(file=sfp) exception = sfp.getvalue() sfp.close() return exception def main (argv, environ): # log ("starting") cgi = neo_cgi.CGI("") try: hdf_file = cgi.hdf.getValue("CGI.PathTranslated", "") if hdf_file == "": cgi.error ("No PATH_TRANSLATED var") return x = string.rfind (hdf_file, '/') if x != -1: cgi.hdf.setValue ("hdf.loadpaths.0", hdf_file[:x]) cgi.hdf.readFile(hdf_file) content = cgi.hdf.getValue("Content", "") if content == "": cgi.error ("No Content var specified in HDF file %s" % hdf_file) return cgi.display(content) except neo_cgi.CGIFinished: return except Exception, Reason: log ("Python Exception: %s" % (str(repr(Reason)))) s = neo_cgi.text2html("Python Exception: %s" % exceptionString()) cgi.error (s) if __name__ == "__main__": main (sys.argv, os.environ)