diff --git a/msrprelay b/msrprelay index 69a9ca4..c8171e5 100644 --- a/msrprelay +++ b/msrprelay @@ -1,82 +1,83 @@ #!/usr/bin/env python """MSRP Relay""" if __name__ == "__main__": import msrp import os import sys import signal from application import log from application.process import process, ProcessError from argparse import ArgumentParser name = "msrprelay" fullname = "MSRP Relay" description = "An open source MSRP Relay" default_pid = os.path.join(msrp.runtime_directory, "relay.pid") default_config = os.path.join(msrp.system_config_directory , msrp.configuration_filename) parser = ArgumentParser(usage='%(prog)s [options]') parser.add_argument('--version', action='version', version='%(prog)s {}'.format(msrp.__version__)) parser.add_argument('--no-fork', action='store_false', dest='fork', help='run in the foreground and log to terminal') parser.add_argument('--pid', dest='pid_file', default=default_pid, help='pid file when forking ({})'.format(default_pid), metavar='FILE') parser.add_argument('--config-file', default=default_config, help='configuration file to read', metavar='FILE') + parser.add_argument('--debug', action='store_true', help='enable verbose logging') parser.add_argument('--debug-memory', action='store_true', help='enable memory debugging') options = parser.parse_args() log.Formatter.prefix_format = '{record.levelname:<8s} ' pid_file = options.pid_file system_config_directory, msrp.configuration_filename = os.path.split(options.config_file) if system_config_directory != "": msrp.system_config_directory = system_config_directory process.system_config_directory = msrp.system_config_directory try: process.runtime_directory = msrp.runtime_directory except ProcessError, e: log.critical('Cannot start %s: %s' % (fullname, e)) sys.exit(1) if options.fork: try: process.daemonize(pid_file) except ProcessError, e: log.critical('Cannot start %s: %s' % (fullname, e)) sys.exit(1) log.use_syslog(name) log.info('Starting %s %s' % (fullname, msrp.__version__)) from msrp.relay import Relay, RelayConfig - log.level.current = RelayConfig.log_level + log.level.current = log.level.DEBUG if options.debug else RelayConfig.log_level if options.debug_memory: from application.debug.memory import memory_dump try: relay = Relay() except Exception, e: log.critical('Failed to create %s: %s' % (fullname, e)) if e.__class__ is not RuntimeError: log.exception() sys.exit(1) process.signals.add_handler(signal.SIGHUP, lambda signum, frame: relay.reload()) try: relay.run() except Exception, e: log.critical('Failed to run %s: %s' % (fullname, e)) if e.__class__ is not RuntimeError: log.exception() sys.exit(1) if options.debug_memory: memory_dump()