X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=ipsilon%2Fipsilon;h=c62a9aad5f6bd0fb4db5ec33baf03f77f43a0cb6;hb=11bbbe3ac6a0842599ab2e5110427758ebaa5573;hp=681600d1624d4d4392d257e45577ded407cf465e;hpb=e94243aa74e7a77fb6457e02f6f4201b3f063b96;p=cascardo%2Fipsilon.git diff --git a/ipsilon/ipsilon b/ipsilon/ipsilon index 681600d..c62a9aa 100755 --- a/ipsilon/ipsilon +++ b/ipsilon/ipsilon @@ -1,21 +1,6 @@ #!/usr/bin/python # -# Copyright (C) 2013 Simo Sorce -# -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# Copyright (C) 2013 Ipsilon project Contributors, for license see COPYING import sys sys.stdout = sys.stderr @@ -23,10 +8,12 @@ import glob import os import atexit import cherrypy +from ipsilon import find_config from ipsilon.util.data import AdminStore from ipsilon.util import page from ipsilon.root import Root -from jinja2 import Environment, FileSystemLoader +from jinja2 import Environment, FileSystemLoader, ChoiceLoader +import ipsilon.util.sessions def nuke_session_locks(): @@ -41,16 +28,9 @@ def nuke_session_locks(): except Exception: # pylint: disable=broad-except pass -cfgfile = None -if (len(sys.argv) > 1): - cfgfile = sys.argv[-1] -elif os.path.isfile('ipsilon.conf'): - cfgfile = 'ipsilon.conf' -elif os.path.isfile('/etc/ipsilon/ipsilon.conf'): - cfgfile = '/etc/ipsilon/ipsilon.conf' -else: - raise IOError("Configuration file not found") +cfgfile = find_config() +cherrypy.lib.sessions.SqlSession = ipsilon.util.sessions.SqlSession cherrypy.config.update(cfgfile) nuke_session_locks() @@ -60,17 +40,29 @@ admin_config = datastore.load_config() for option in admin_config: cherrypy.config[option] = admin_config[option] -template_dir = cherrypy.config.get('template_dir', 'templates') +template_loaders = [] +default_template_dir = 'templates' +template_dir = cherrypy.config.get('template_dir', default_template_dir) if template_dir.startswith('/'): - templates = template_dir + template_loaders.append(FileSystemLoader(template_dir)) else: - templates = os.path.join(cherrypy.config['base.dir'], template_dir) -template_env = Environment(loader=FileSystemLoader(templates)) + template_loaders.append(FileSystemLoader( + os.path.join(cherrypy.config['base.dir'], + template_dir))) +# Fall-back to the default templates +template_loaders.append(FileSystemLoader( + os.path.join(cherrypy.config['base.dir'], + default_template_dir))) +template_env = Environment(loader=ChoiceLoader(template_loaders), + autoescape=True, + extensions=['jinja2.ext.autoescape']) if __name__ == "__main__": conf = {'/': {'tools.staticdir.root': os.getcwd()}, '/ui': {'tools.staticdir.on': True, - 'tools.staticdir.dir': 'ui'}} + 'tools.staticdir.dir': 'ui'}, + '/cache': {'tools.staticdir.on': True, + 'tools.staticdir.dir': 'cache'}} cherrypy.quickstart(Root('default', template_env), cherrypy.config['base.mount'], conf)