############################################################################## # # Copyright (c) 2005 Philipp "philiKON" von Weitershausen # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Application initialization $Id$ """ import sys, os import zope.app.appsetup from zope.event import notify from zope.app.server.main import ZopeOptions from zope.app.wsgi import WSGIPublisherApplication class ModzopeOptions(ZopeOptions): configfile = os.environ.get('MODZOPE_CONF', 'modzope.conf') def load_options(args=[]): options = ModzopeOptions() options.schemadir = os.path.dirname(os.path.abspath(__file__)) options.realize(args) options = options.configroot if options.path: sys.path[:0] = [os.path.abspath(p) for p in options.path] return options def setup(options): sys.setcheckinterval(options.check_interval) zope.app.appsetup.config(options.site_definition) db = options.database.open() notify(zope.app.appsetup.interfaces.DatabaseOpened(db)) notify(zope.app.appsetup.interfaces.ProcessStarting()) return db def setupApplication(): # waargh sys.argv = [] db = setup(load_options()) return WSGIPublisherApplication(db) application = setupApplication()