import optparse
import os
import sys
+import json
import tempfile
import logging
import logging.config
help="OpenERP server port", type="int", metavar="NUMBER")
optparser.add_option("--db-filter", dest="dbfilter", default='.*',
help="Filter listed database", metavar="REGEXP")
-optparser.add_option('--addons-path', dest='addons_path', default=path_addons,
+optparser.add_option('--addons-path', dest='addons_path', default=[path_addons], action='append',
help="Path do addons directory", metavar="PATH")
+optparser.add_option('--load', dest='server_wide_modules', default=['web'], action='append',
+ help="Load a additional module before login (by default only 'web' is loaded)", metavar="MODULE")
server_options = optparse.OptionGroup(optparser, "Server configuration")
server_options.add_option("-p", "--port", dest="socket_port", default=8002,
logging_opts.add_option("--log-level", dest="log_level", type="choice",
default='debug', help="Global logging level", metavar="LOG_LEVEL",
choices=['debug', 'info', 'warning', 'error', 'critical'])
-logging_opts.add_option("--log-config", dest="log_config",
+logging_opts.add_option("--log-config", dest="log_config", default=os.path.join(os.path.dirname(__file__), "logging.json"),
help="Logging configuration file", metavar="FILE")
optparser.add_option_group(logging_opts)
-import web.common.dispatch
+import web.common.http
if __name__ == "__main__":
(options, args) = optparser.parse_args(sys.argv[1:])
os.environ["TZ"] = "UTC"
- if not options.log_config:
- logging.basicConfig(level=getattr(logging, options.log_level.upper()))
+ if sys.version_info >= (2, 7):
+ with open(options.log_config) as file:
+ dct = json.load(file)
+ logging.config.dictConfig(dct)
+ logging.getLogger("").setLevel(getattr(logging, options.log_level.upper()))
else:
- logging.config.fileConfig(options.log_config)
+ logging.basicConfig(level=getattr(logging, options.log_level.upper()))
- app = web.common.dispatch.Root(options)
+ app = web.common.http.Root(options)
if options.proxy_mode:
app = werkzeug.contrib.fixers.ProxyFix(app)