Mercurial > hg > wsgintegrate
view wsgintegrate/main.py @ 19:4d9a2a2fb8c0
print out the localhost url and other minor fixes
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Sat, 09 Mar 2013 23:03:48 -0800 |
parents | 30e69abaadbb |
children | caf763fc1c7d |
line wrap: on
line source
#!/usr/bin/env python """ command line entry point for wsgintegrate serves an application from a .ini file (really, a DAG) uses wsgiref, though could in theory make use of other WSGI servers, if available (TODO) """ import sys from factory import WSGIfactory from optparse import OptionParser from server import wsgiref def main(args=sys.argv[1:]): # parse command line options usage = '%prog [options] config-file' parser = OptionParser(usage=usage, description=__doc__) parser.add_option('-a', '--app', dest='app', default='', help='which app to serve from the configuration') parser.add_option('-p', '--port', dest='port', type='int', default=80, help='which port to serve on, if server not specified in configuration') parser.add_option('--list-apps', dest='list_apps', action='store_true', default=False, help='list the WSGI apps available in the configuration') parser.add_option('--print-json', dest='print_json', action='store_true', default=False, help='print JSON format of the configuration') parser.add_option('--print-ini', dest='print_ini', action='store_true', default=False, help='print .ini format of the configuration') options, args = parser.parse_args(args) # check for single configuration file if len(args) != 1: # TODO: could munge multiple configs parser.print_usage() parser.exit() config = args[0] # create a factory from configuration # TODO: interpret if the configuration is .ini, JSON, etc factory = WSGIfactory(config, main=options.app) # print configuration, if specified if options.list_apps: for app in sorted(factory.config.keys()): print app return if options.print_json: print factory.json_config() return if options.print_ini: print factory.ini_config() return # serve it print 'http://localhost:%d/' % options.port wsgiref(app=factory.load(), port=options.port) if __name__ == '__main__': main()