#!/usr/bin/env python import sys if sys.version[0] == '1': print """Webware requires Python version 2.0+. Webware is currently being run with the Python version: %s This Python interpreter is located at: %s You may need to change the AppServer script, giving the full path of the appropriate Python interpreter.""" % (sys.version, sys.executable) sys.exit(1) import time; startTime = time.time() runProfile = 0 # as in Python's profile module. See doc string of Profiler.py import os, sys, string profiler = None # Forget this and read the doc string of Profiler.py def usage(): print 'error: Launch.py (of WebKit)' print 'usage: Launch.py SERVER ARGS' sys.exit(1) def launchWebKit(server, appWorkPath, args): """ Import and launch the specified WebKit server. """ # allow for a .py on the server name if server[-3:]=='.py': server = server[:-3] # clean up sys.path def ok(directory): return directory not in ['', '.'] and string.lower(directory[-6:])!='webkit' sys.path = filter(ok, sys.path) sys.path.insert(0, '') # Import the server's main() import WebKit code = 'from WebKit.%s import main' % server dict = {} exec code in dict main = dict['main'] # Set up a reference to our profiler so applications can import and use it from WebKit import Profiler Profiler.startTime = startTime if runProfile: Profiler.profiler = profiler # Run! args = args + ['workdir=' + appWorkPath] main(args) def main(args=None): if args is None: args = sys.argv if len(args)<2: usage() server = args[1] # the server # figure out directory locations webKitPath = os.path.dirname(os.path.join(os.getcwd(), sys.argv[0])) webwarePath = os.path.dirname(webKitPath) # go to Webware dir so that: # - importing packages like 'WebUtils' hits this Webware # - we cannot import WebKit modules without qualifying them os.chdir(webwarePath) # Go! launchWebKit(server, webKitPath, args[2:]) if __name__=='__main__': if runProfile: print 'Profiling is on. See doc string in Profiler.py for more info.' from profile import Profile profiler = Profile() profiler.runcall(main) from WebKit import Profiler Profiler.dumpStats() else: main()