# This script starts a CGI server.
#
# It expects 2-3 arguments:
# 1. path to the folder containing the "free-theorems-webui.cgi" binary.
# 2. path to the folder containing static files (like "style.css" etc.)
# 3. optional port number (default is 8080)
#
from CGIHTTPServer import *
from BaseHTTPServer import *
import sys, os
import webbrowser
bin_dir = sys.argv[1]
data_dir = sys.argv[2]
if len(sys.argv) > 3:
port = int(sys.argv[3])
else:
port = 8080
def is_cgi(path):
return path == "/" or path.startswith("/?")
class CustomHandler (CGIHTTPRequestHandler):
def is_cgi(self):
if is_cgi(self.path):
self.cgi_info = ("", self.path) # no directory portion, no filename (has to be set)
return True
def translate_path(self, path):
if is_cgi(path):
return os.path.join (bin_dir, "free-theorems-webui.cgi")
else:
return os.path.join (data_dir, *path.split("/"))
server = HTTPServer(('',port), CustomHandler)
url = "http://localhost:%d" % server.server_port
print "Starting server at %s..." % url
webbrowser.open(url)
server.serve_forever()