Show More
@@ -17,17 +17,87 b'' | |||
|
17 | 17 | # This program is dual-licensed. If you wish to learn more about the |
|
18 | 18 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
19 | 19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
20 | import logging | |
|
20 | 21 | |
|
21 | 22 | import click |
|
23 | import pyramid.paster | |
|
22 | 24 | |
|
23 | from rhodecode.lib.pyramid_utils import bootstrap | |
|
24 | import pyramid.paster | |
|
25 | from rhodecode.lib.pyramid_utils import bootstrap, get_app_config | |
|
26 | from rhodecode.lib.db_manage import DbManage | |
|
27 | from rhodecode.model.db import Session | |
|
28 | ||
|
29 | ||
|
30 | log = logging.getLogger(__name__) | |
|
25 | 31 | |
|
26 | 32 | |
|
27 | 33 | @click.command() |
|
28 | 34 | @click.argument('ini_path', type=click.Path(exists=True)) |
|
29 | def main(ini_path): | |
|
35 | @click.option( | |
|
36 | '--force-yes/--force-no', default=None, | |
|
37 | help="Force yes/no to every question") | |
|
38 | @click.option( | |
|
39 | '--user', | |
|
40 | default=None, | |
|
41 | help='Initial super-admin username') | |
|
42 | @click.option( | |
|
43 | '--email', | |
|
44 | default=None, | |
|
45 | help='Initial super-admin email address.') | |
|
46 | @click.option( | |
|
47 | '--password', | |
|
48 | default=None, | |
|
49 | help='Initial super-admin password. Minimum 6 chars.') | |
|
50 | @click.option( | |
|
51 | '--api-key', | |
|
52 | help='Initial API key for the admin user') | |
|
53 | @click.option( | |
|
54 | '--repos', | |
|
55 | default=None, | |
|
56 | help='Absolute path to storage location. This is storage for all ' | |
|
57 | 'existing and future repositories, and repository groups.') | |
|
58 | @click.option( | |
|
59 | '--public-access/--no-public-access', | |
|
60 | default=None, | |
|
61 | help='Enable public access on this installation. ' | |
|
62 | 'Default is public access enabled.') | |
|
63 | def main(ini_path, force_yes, user, email, password, api_key, repos, | |
|
64 | public_access): | |
|
65 | return command(ini_path, force_yes, user, email, password, api_key, | |
|
66 | repos, public_access) | |
|
67 | ||
|
68 | ||
|
69 | def command(ini_path, force_yes, user, email, password, api_key, repos, | |
|
70 | public_access): | |
|
71 | # mapping of old parameters to new CLI from click | |
|
72 | options = dict( | |
|
73 | username=user, | |
|
74 | email=email, | |
|
75 | password=password, | |
|
76 | api_key=api_key, | |
|
77 | repos_location=repos, | |
|
78 | force_ask=force_yes, | |
|
79 | public_access=public_access | |
|
80 | ) | |
|
30 | 81 | pyramid.paster.setup_logging(ini_path) |
|
31 | 82 | |
|
83 | config = get_app_config(ini_path) | |
|
84 | ||
|
85 | db_uri = config['sqlalchemy.db1.url'] | |
|
86 | dbmanage = DbManage(log_sql=True, dbconf=db_uri, root='.', | |
|
87 | tests=False, cli_args=options) | |
|
88 | dbmanage.create_tables(override=True) | |
|
89 | dbmanage.set_db_version() | |
|
90 | opts = dbmanage.config_prompt(None) | |
|
91 | dbmanage.create_settings(opts) | |
|
92 | dbmanage.create_default_user() | |
|
93 | dbmanage.create_admin_and_prompt() | |
|
94 | dbmanage.create_permissions() | |
|
95 | dbmanage.populate_default_permissions() | |
|
96 | Session().commit() | |
|
97 | ||
|
32 | 98 | with bootstrap(ini_path) as env: |
|
33 | print(env['request'].application_url) No newline at end of file | |
|
99 | msg = 'Successfully initialized database, schema and default data.' | |
|
100 | print() | |
|
101 | print('*' * len(msg)) | |
|
102 | print(msg.upper()) | |
|
103 | print('*' * len(msg)) |
@@ -167,7 +167,7 b' class DBBackend(object):' | |||
|
167 | 167 | os.makedirs(self._repos_git_lfs_store) |
|
168 | 168 | |
|
169 | 169 | self.execute( |
|
170 |
" |
|
|
170 | "rc-setup-app {0} --user=marcink " | |
|
171 | 171 | "--email=marcin@rhodeocode.com --password={1} " |
|
172 | 172 | "--repos={2} --force-yes".format( |
|
173 | 173 | _ini_file, 'qweqwe', self._repos_location), env=env) |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | #!/bin/sh |
|
2 | 2 | psql -U postgres -h localhost -c 'drop database if exists rhodecode;' |
|
3 | 3 | psql -U postgres -h localhost -c 'create database rhodecode;' |
|
4 |
|
|
|
4 | rc-setup-app rc.ini --force-yes --user=marcink --password=qweqwe --email=marcin@python-blog.com --repos=/home/marcink/repos --no-public-access | |
|
5 | 5 | API_KEY=`psql -R " " -A -U postgres -h localhost -c "select api_key from users where admin=TRUE" -d rhodecode | awk '{print $2}'` |
|
6 | 6 | echo "run those after running server" |
|
7 | 7 | paster serve rc.ini --pid-file=rc.pid --daemon |
@@ -18,32 +18,27 b'' | |||
|
18 | 18 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
19 | 19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
20 | 20 | |
|
21 | """ | |
|
22 | Weboperations and setup for rhodecode | |
|
23 | """ | |
|
24 | 21 | |
|
25 | 22 | import logging |
|
26 | 23 | |
|
27 | from rhodecode.config.environment import load_environment | |
|
28 | from rhodecode.lib.db_manage import DbManage | |
|
29 | from rhodecode.model.meta import Session | |
|
30 | ||
|
24 | from rhodecode.lib.rc_commands.setup_rc import command as setup_command | |
|
31 | 25 | |
|
32 | 26 | log = logging.getLogger(__name__) |
|
33 | 27 | |
|
34 | 28 | |
|
35 | 29 | def setup_app(command, conf, vars): |
|
36 | """Place any commands to setup rhodecode here""" | |
|
37 | dbconf = conf['sqlalchemy.db1.url'] | |
|
38 | dbmanage = DbManage(log_sql=True, dbconf=dbconf, root=conf['here'], | |
|
39 | tests=False, cli_args=command.options.__dict__) | |
|
40 | dbmanage.create_tables(override=True) | |
|
41 | dbmanage.set_db_version() | |
|
42 | opts = dbmanage.config_prompt(None) | |
|
43 | dbmanage.create_settings(opts) | |
|
44 | dbmanage.create_default_user() | |
|
45 | dbmanage.create_admin_and_prompt() | |
|
46 | dbmanage.create_permissions() | |
|
47 | dbmanage.populate_default_permissions() | |
|
48 | Session().commit() | |
|
49 | load_environment(conf.global_conf, conf.local_conf, initial=True) | |
|
30 | opts = command.options.__dict__ | |
|
31 | ||
|
32 | # mapping of old parameters to new CLI from click | |
|
33 | options = dict( | |
|
34 | ini_path=command.args[0], | |
|
35 | force_yes=opts.get('force_ask'), | |
|
36 | user=opts.get('username'), | |
|
37 | email=opts.get('email'), | |
|
38 | password=opts.get('password'), | |
|
39 | api_key=opts.get('api_key'), | |
|
40 | repos=opts.get('repos_location'), | |
|
41 | public_access=opts.get('public_access') | |
|
42 | ) | |
|
43 | setup_command(**options) | |
|
44 |
General Comments 0
You need to be logged in to leave comments.
Login now