Beispiel #1
0
def configuration(broker, args):

	usage = "%prog configuration [options]"
	description = "Description: generate default configuration and logging files"
	epilog = """
Examples:
   Generate default application config files:
     > python mediarover.py configuration --write
	
   Generate default application config files, in a specific directory:
     > python mediarover.py configuration --write --config /path/to/config/dir

	Process tv_root and generate series filters
	  > python mediarover.py configuration --generate-filters

Advanced Example:
	Generate default application config files, set tv_root to given value(s), and generate series filters
	Note: multiple tv_root values must be separated by commas, no spaces
	  > python mediarover.py configuration --write /path/to/tv,/path/to/more/tv --generate-filters 
"""
	parser = OptionParser(usage=usage, description=description, epilog=epilog, add_help_option=False)

	parser.add_option("-c", "--config", metavar="/PATH/TO/CONFIG/DIR", help="path to application configuration directory")
	parser.add_option("--generate-filters", action="store_true", default=False, help="Generate default series filters")
	parser.add_option("--write", action="store_true", default=False, help="Generate default configuration and logging files")
	parser.add_option("-h", "--help", action="callback", callback=print_epilog, help="show this help message and exit")

	(options, args) = parser.parse_args(args)

	if options.config:
		broker.register(CONFIG_DIR, options.config)
	
	if options.write:
		if len(args) > 0:
			tv_root = args[0]
			generate_filters = options.generate_filters
		else:
			tv_root = None
			generate_filters = False
		generate_config_files(broker[RESOURCES_DIR], broker[CONFIG_DIR], tv_root, generate_filters)
	elif options.generate_filters:
		try:
			config = get_processed_app_config(broker[RESOURCES_DIR], broker[CONFIG_DIR])
		except (ConfigurationError), e:
			print e
			exit(1)
		else:
			generate_series_filters(broker[RESOURCES_DIR], broker[CONFIG_DIR], config)
Beispiel #2
0
def write_configs(broker, args):

	usage = "%prog write-configs [options]"
	description = "Description: generate default configuration and logging files"
	epilog = """
Examples:
   Generate default application config files:
     > python mediarover.py write-configs
	
   Generate default application config files, in a specific directory:
     > python mediarover.py write-configs --config /path/to/config/dir
"""
	parser = OptionParser(usage=usage, description=description, epilog=epilog, add_help_option=False)

	parser.add_option("-c", "--config", metavar="/PATH/TO/CONFIG/DIR", help="path to application configuration directory")
	parser.add_option("-h", "--help", action="callback", callback=print_usage, help="show this help message and exit")

	(options, args) = parser.parse_args(args)

	if options.config:
		broker.register('config_dir', options.config)
	
	generate_config_files(broker['resources_dir'], broker['config_dir'])
Beispiel #3
0
def bootstrap(options, args):

    """ config setup """

    # determine path of config directory
    if options.config:
        config_dir = options.config
    elif os.name == "nt":
        if "LOCALAPPDATA" in os.environ:  # Vista or better default path
            config_dir = os.path.expandvars("%LOCALAPPDATA%\Mediarover")
        else:  # XP default path
            config_dir = os.path.expandvars("%APPDATA%\Mediarover")
    else:  # os.name == "posix":
        config_dir = os.path.expanduser("~/.mediarover")

        # if config_dir doesn't exist, create it
    if not os.path.isdir(config_dir):
        generate_config_files(config_dir)

    config = read_config(config_dir)

    """ logging setup """

    # initialize and retrieve logger for later use
    logging.config.fileConfig(open(os.path.join(config_dir, "ui_logging.conf")))
    logger = logging.getLogger("mediarover.interface")

    """ main """

    logger.info("--- STARTING ---")
    logger.debug("using config directory: %s", config_dir)

    # set a few config values
    cherrypy_config = {
        "server.environment": "production",
        "server.log_to_screen": True,
        "server.log_file": os.path.join(config_dir, "logs", "ui.log"),
        "/js": {
            "static_filter.on": True,
            "static_filter.dir": os.path.join(
                os.path.abspath(config["ui"]["templates_dir"]), config["ui"]["template"], "static", "js"
            ),
            "static_filter.content_types": {"js": "application/x-javascript"},
        },
        "/css": {
            "static_filter.on": True,
            "static_filter.dir": os.path.join(
                os.path.abspath(config["ui"]["templates_dir"]), config["ui"]["template"], "static", "css"
            ),
            "static_filter.content_types": {"css": "text/css"},
        },
    }

    # merge user defined settings from config file
    cherrypy_config.update(config["ui"]["server"])

    # configure cherrypy using default and user provided values
    cherrypy.config.update(updateMap=cherrypy_config)

    # launch cherry web server
    cherrypy.root = Mrconfig(config)
    cherrypy.server.start()