Mercurial > kallithea
view rhodecode/config/setup_rhodecode.py @ 3198:c20adbaf16af beta
html: random indentation fixes
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Tue, 22 Jan 2013 23:44:38 +0100 |
parents | 29630805893d |
children |
line wrap: on
line source
import os from paste.script.appinstall import AbstractInstallCommand from paste.script.command import BadCommand from paste.deploy import appconfig class SetupCommand(AbstractInstallCommand): default_verbosity = 1 max_args = 1 min_args = 1 summary = "Setup an application, given a config file" usage = "CONFIG_FILE" description = """\ Note: this is an experimental command, and it will probably change in several ways by the next release. Setup an application according to its configuration file. This is the second part of a two-phase web application installation process (the first phase is prepare-app). The setup process may consist of things like creating directories and setting up databases. """ parser = AbstractInstallCommand.standard_parser( simulate=True, quiet=True, interactive=True) parser.add_option('--user', action='store', dest='username', default=None, help='Admin Username') parser.add_option('--email', action='store', dest='email', default=None, help='Admin Email') parser.add_option('--password', action='store', dest='password', default=None, help='Admin password min 6 chars') parser.add_option('--repos', action='store', dest='repos_location', default=None, help='Absolute path to repositories location') parser.add_option('--name', action='store', dest='section_name', default=None, help='The name of the section to set up (default: app:main)') parser.add_option('--force-yes', action='store_true', dest='force_ask', default=None, help='Force yes to every question') parser.add_option('--force-no', action='store_false', dest='force_ask', default=None, help='Force no to every question') def command(self): config_spec = self.args[0] section = self.options.section_name if section is None: if '#' in config_spec: config_spec, section = config_spec.split('#', 1) else: section = 'main' if not ':' in section: plain_section = section section = 'app:' + section else: plain_section = section.split(':', 1)[0] if not config_spec.startswith('config:'): config_spec = 'config:' + config_spec if plain_section != 'main': config_spec += '#' + plain_section config_file = config_spec[len('config:'):].split('#', 1)[0] config_file = os.path.join(os.getcwd(), config_file) self.logging_file_config(config_file) conf = appconfig(config_spec, relative_to=os.getcwd()) ep_name = conf.context.entry_point_name ep_group = conf.context.protocol dist = conf.context.distribution if dist is None: raise BadCommand( "The section %r is not the application (probably a filter). " "You should add #section_name, where section_name is the " "section that configures your application" % plain_section) installer = self.get_installer(dist, ep_group, ep_name) installer.setup_config( self, config_file, section, self.sysconfig_install_vars(installer)) self.call_sysconfig_functions( 'post_setup_hook', installer, config_file)