Mercurial > kallithea
view rhodecode/lib/paster_commands/setup_rhodecode.py @ 3774:60335b702a00 beta
invalidation: don't create CacheInvalidation records on startup
Creating the records early gave an advantage before lightweight was introduced.
With lightweight it is no longer necessary.
The records will be created on demand anyway and there is no reason to create and
maintain them before they are used.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 03 Apr 2013 15:56:12 +0200 |
parents | f1491bad8339 |
children | a42bfe8a9335 |
line wrap: on
line source
import os import sys from paste.script.appinstall import AbstractInstallCommand from paste.script.command import BadCommand from paste.deploy import appconfig from os.path import dirname as dn, join as jn #to get the rhodecode import rc_path = dn(dn(dn(os.path.realpath(__file__)))) sys.path.append(rc_path) class Command(AbstractInstallCommand): default_verbosity = 1 max_args = 1 min_args = 1 summary = "Setup an application, given a config file" usage = "CONFIG_FILE" group_name = "RhodeCode" description = """\ Setup RhodeCode 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 consist of things like setting up databases, creating super user """ 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)