X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=src%2Fipsilon.py;h=7a782d6363e8376c5d86cec4fbeca799c20f091e;hp=affab328554b08d67758c816ad8e71ba54bd71af;hb=af20a913043943c47516bc7ab5f68ebd7ca0b487;hpb=31162de72532847fd0989329a408afb6a4c5b1f6 diff --git a/src/ipsilon.py b/src/ipsilon.py index affab32..7a782d6 100755 --- a/src/ipsilon.py +++ b/src/ipsilon.py @@ -20,30 +20,46 @@ import sys sys.stdout = sys.stderr +import os import atexit import threading import cherrypy from util import plugin +from util import data +from util import page +from jinja2 import Environment, FileSystemLoader +import root -class Root(object): +cherrypy.config.update('ipsilon.conf') - @cherrypy.expose - def index(self): - return '/' +plugins = plugin.Plugins(path=cherrypy.config['base.dir']) +idp_providers = plugins.get_providers() +if idp_providers: + cherrypy.config['idp_providers'] = idp_providers +datastore = data.Store() +admin_config = datastore.get_admin_config() +for option in admin_config: + cherrypy.config[option] = admin_config[option] -plugins = plugin.Plugins() -idp_providers = plugins.get_providers() -cherrypy.config.update({'idp_providers': idp_providers}) +templates = os.path.join(cherrypy.config['base.dir'], 'templates') +env = Environment(loader=FileSystemLoader(templates)) + +cherrypy.tools.protect = cherrypy.Tool('before_handler', page.protect) if __name__ == "__main__": - cherrypy.quickstart(Root()) + conf = { '/': {'tools.staticdir.root': os.getcwd()}, + '/ui': { 'tools.staticdir.on': True, + 'tools.staticdir.dir': 'ui' } + } + cherrypy.quickstart(root.Root(env), '/', conf) else: - cherrypy.config.update({'environment': 'embedded'}) + cherrypy.config['environment'] = 'embedded' if cherrypy.__version__.startswith('3.0') and cherrypy.engine.state == 0: cherrypy.engine.start(blocking=False) atexit.register(cherrypy.engine.stop) - application = cherrypy.Application(Root(), script_name=None, config=None) + application = cherrypy.Application(root.Root(env), + script_name=None, config=None)