def server_main(*, insecure=False, **kwargs): logsetup.setup_logging(kwargs['log_level'], kwargs['log_to']) exceptions.install_excepthook() asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) if kwargs['devmode'] is not None: devmode.enable_dev_mode(kwargs['devmode']) if not kwargs['data_dir']: if devmode.is_in_dev_mode(): kwargs['data_dir'] = os.path.expanduser('~/.edgedb') else: abort('Please specify the instance data directory ' 'using the -D argument') kwargs['insecure'] = insecure if kwargs['background']: daemon_opts = {'detach_process': True} pidfile = os.path.join(kwargs['pidfile'], '.s.EDGEDB.{}.lock'.format(kwargs['port'])) daemon_opts['pidfile'] = pidfile if kwargs['daemon_user']: daemon_opts['uid'] = kwargs['daemon_user'] if kwargs['daemon_group']: daemon_opts['gid'] = kwargs['daemon_group'] with daemon.DaemonContext(**daemon_opts): setproctitle.setproctitle('edgedb-server-{}'.format( kwargs['port'])) run_server(kwargs) else: with devmode.CoverageConfig.enable_coverage_if_requested(): run_server(kwargs)
def server_main(*, insecure=False, **kwargs): logsetup.setup_logging(kwargs['log_level'], kwargs['log_to']) exceptions.install_excepthook() bump_rlimit_nofile() asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) if kwargs['devmode'] is not None: devmode.enable_dev_mode(kwargs['devmode']) server_args = srvargs.parse_args(insecure=insecure, **kwargs) if kwargs['background']: daemon_opts = {'detach_process': True} pidfile = kwargs['pidfile_dir'] / f".s.EDGEDB.{kwargs['port']}.lock" daemon_opts['pidfile'] = pidfile if kwargs['daemon_user']: daemon_opts['uid'] = kwargs['daemon_user'] if kwargs['daemon_group']: daemon_opts['gid'] = kwargs['daemon_group'] with daemon.DaemonContext(**daemon_opts): run_server(server_args, setproctitle=True) else: with devmode.CoverageConfig.enable_coverage_if_requested(): run_server(server_args)
def run(self, *args, **kwargs): from edb import buildmeta from edb.common import devmode try: buildmeta.get_build_metadata_value("SHARED_DATA_DIR") except buildmeta.MetadataError: # buildmeta path resolution needs this devmode.enable_dev_mode() build = self.get_finalized_command('build') build_temp = pathlib.Path(build.build_temp).resolve() build_base = pathlib.Path(build.build_base).resolve() _compile_cli(build_base, build_temp) scripts = self.distribution.entry_points['console_scripts'] patched_scripts = [] for s in scripts: s = f'{s}_dev' patched_scripts.append(s) patched_scripts.append('edb = edb.tools.edb:edbcommands') patched_scripts.append('edgedb = edb.cli:rustcli') self.distribution.entry_points['console_scripts'] = patched_scripts super().run(*args, **kwargs) _compile_parsers(build_base / 'lib', inplace=True) _compile_postgres(build_base) _build_ui(build_base, build_temp)
def server_main(**kwargs): exceptions.install_excepthook() bump_rlimit_nofile() asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) if kwargs['devmode'] is not None: devmode.enable_dev_mode(kwargs['devmode']) try: server_args = srvargs.parse_args(**kwargs) except srvargs.InvalidUsageError as e: abort(e.args[0], exit_code=e.args[1]) if kwargs['background']: daemon_opts = {'detach_process': True} pidfile = kwargs['pidfile_dir'] / f".s.EDGEDB.{kwargs['port']}.lock" daemon_opts['pidfile'] = pidfile if kwargs['daemon_user']: daemon_opts['uid'] = kwargs['daemon_user'] if kwargs['daemon_group']: daemon_opts['gid'] = kwargs['daemon_group'] with daemon.DaemonContext(**daemon_opts): asyncio.run(run_server(server_args, setproctitle=True)) else: with devmode.CoverageConfig.enable_coverage_if_requested(): asyncio.run(run_server(server_args))
def server_main(*, insecure=False, **kwargs): logsetup.setup_logging(kwargs['log_level'], kwargs['log_to']) exceptions.install_excepthook() bump_rlimit_nofile() asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) if kwargs['devmode'] is not None: devmode.enable_dev_mode(kwargs['devmode']) if kwargs['temp_dir']: if kwargs['bootstrap']: abort('--temp-data-dir is incompatible with --bootstrap') if kwargs['data_dir']: abort('--temp-data-dir is incompatible with --data-dir/-D') if kwargs['runstate_dir']: abort('--temp-data-dir is incompatible with --runstate-dir') if kwargs['postgres_dsn']: abort('--temp-data-dir is incompatible with --postgres-dsn') kwargs['data_dir'] = kwargs['runstate_dir'] = pathlib.Path( tempfile.mkdtemp()) else: if not kwargs['data_dir']: if kwargs['postgres_dsn']: pass elif devmode.is_in_dev_mode(): kwargs['data_dir'] = os.path.expanduser('~/.edgedb') else: abort('Please specify the instance data directory ' 'using the -D argument or the address of a remote ' 'PostgreSQL cluster using the --postgres-dsn argument') elif kwargs['postgres_dsn']: abort('The -D and --postgres-dsn options are mutually exclusive.') kwargs['insecure'] = insecure if kwargs['background']: daemon_opts = {'detach_process': True} pidfile = kwargs['pidfile_dir'] / f".s.EDGEDB.{kwargs['port']}.lock" daemon_opts['pidfile'] = pidfile if kwargs['daemon_user']: daemon_opts['uid'] = kwargs['daemon_user'] if kwargs['daemon_group']: daemon_opts['gid'] = kwargs['daemon_group'] with daemon.DaemonContext(**daemon_opts): # TODO: setproctitle should probably be moved to where # management port is initialized, as that's where we know # the actual network port we listen on. At this point # "port" can be "None". setproctitle.setproctitle(f"edgedb-server-{kwargs['port']}") run_server(ServerConfig(**kwargs)) else: with devmode.CoverageConfig.enable_coverage_if_requested(): run_server(ServerConfig(**kwargs))
def run(self, *args, **kwargs): from edb import buildmeta from edb.common import devmode try: buildmeta.get_build_metadata_value("SHARED_DATA_DIR") except buildmeta.MetadataError: # buildmeta path resolution needs this devmode.enable_dev_mode() build = self.get_finalized_command('build') _build_ui( pathlib.Path(build.build_base).resolve(), pathlib.Path(build.build_temp).resolve(), )
def cli_dev(): dm.enable_dev_mode() cli()
def main_dev(): devmode.enable_dev_mode() main()
def edbcommands(devmode: bool): if devmode: dm.enable_dev_mode()