#!/usr/bin/env python # vim: set encoding=utf-8 et sw=4 sts=4 : import sys import logging ; log = logging.getLogger('pymind') # First of all, we need to setup the logging framework # FIXME: this should go in a configuration file logging.basicConfig( level = logging.DEBUG, format = '%(asctime)s %(name)-24s %(levelname)-8s %(message)s', datefmt = '%a, %d %b %Y %H:%M:%S', ) from pymin.pymindaemon import PyminDaemon from pymin.dispatcher import Handler from pymin.service import load_service, LoadError import config # exit status EXIT_NO_SERVICE = 1 class Root(Handler): pass def build_root(config): # TODO check services dependencies services = dict() for service in config.services: try: s = load_service(service, config.services_dirs) except LoadError, e: log.error("Can't find service called '%s'\n", service) sys.exit(EXIT_NO_SERVICE) services[service] = s root = Root() for name, service in services.items(): setattr(root, name, service.get_service(config)) return root # FIXME try: f = file("/proc/sys/net/ipv4/ip_forward","w") f.write("1") f.close() except (IOError, OSError), e: log.warning("Can't set ip_forward: %s", e) PyminDaemon(build_root(config), config.bind_addr).run()