Mercurial > kallithea
view rhodecode/lib/paster_commands/setup_rhodecode.py @ 3574:000653f7cdf9 beta
avoid displaying repr of internal classes in user facing messages
The context of the message will tell where the problem was and there is no reason to show
... does not exist for this repository <MercurialRepository at /home/marcink/repos/rhodecode>
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Thu, 21 Mar 2013 11:17:01 +0100 |
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)