diff --git a/moonraker/moonraker.py b/moonraker/moonraker.py index a79cc69..e18d4ef 100755 --- a/moonraker/moonraker.py +++ b/moonraker/moonraker.py @@ -92,12 +92,8 @@ class Server: self.register_upload_handler = app.register_upload_handler self.register_api_transport = app.register_api_transport - log_warn = args.get('log_warning', "") - if log_warn: - self.add_warning(log_warn) - cfg_warn = args.get("config_warning", "") - if cfg_warn: - self.add_warning(cfg_warn) + for warning in args.get("startup_warnings", []): + self.add_warning(warning) self.register_endpoint( "/server/info", ['GET'], self._handle_info_request) @@ -440,6 +436,8 @@ def main(cmd_line_args: argparse.Namespace) -> None: cfg_file = cmd_line_args.configfile app_args = {'config_file': cfg_file} + startup_warnings: List[str] = [] + app_args["startup_warnings"] = startup_warnings # Setup Logging version = utils.get_software_version() if cmd_line_args.nologfile: @@ -451,7 +449,7 @@ def main(cmd_line_args: argparse.Namespace) -> None: app_args['python_version'] = sys.version.replace("\n", " ") ql, file_logger, warning = utils.setup_logging(app_args) if warning is not None: - app_args['log_warning'] = warning + startup_warnings.append(warning) # Start asyncio event loop and server event_loop = EventLoop() @@ -468,7 +466,9 @@ def main(cmd_line_args: argparse.Namespace) -> None: estatus = 1 break app_args['config_file'] = backup_cfg - app_args['config_warning'] = ( + warn_list = list(startup_warnings) + app_args["startup_warnings"] = warn_list + warn_list.append( f"Server configuration error: {e}\n" f"Loaded server from most recent working configuration:" f" '{app_args['config_file']}'\n" @@ -494,7 +494,7 @@ def main(cmd_line_args: argparse.Namespace) -> None: # before the server restarts if alt_config_loaded: app_args['config_file'] = cfg_file - app_args.pop('config_warning', None) + app_args["startup_warnings"] = startup_warnings alt_config_loaded = False event_loop.close() # Since we are running outside of the the server