diff --git a/src/octoprint/__init__.py b/src/octoprint/__init__.py index 50b4ab36..b36cc4ce 100644 --- a/src/octoprint/__init__.py +++ b/src/octoprint/__init__.py @@ -6,25 +6,34 @@ import sys import click import logging +#~~ version + +from ._version import get_versions +versions = get_versions() + +__version__ = versions['version'] +__branch__ = versions['branch'] if 'branch' in versions else None +__display_version__ = "{} ({} branch)".format(__version__, __branch__) if __branch__ else __version__ + +del versions +del get_versions + + from octoprint.daemon import Daemon from octoprint.server import Server logging.basicConfig() -#~~ version - -from ._version import get_versions -__version__ = get_versions()['version'] -del get_versions - - #~~ init methods to bring up platform def init_platform(basedir, configfile, use_logging_file=True, logging_file=None, logging_config=None, debug=False, uncaught_logger=None, - uncaught_handler=None): + uncaught_handler=None, after_settings=None, after_logging=None): settings = init_settings(basedir, configfile) + if callable(after_settings): + after_settings(settings) + logger = init_logging(settings, use_logging_file=use_logging_file, logging_file=logging_file, @@ -32,6 +41,9 @@ def init_platform(basedir, configfile, use_logging_file=True, logging_file=None, debug=debug, uncaught_logger=uncaught_logger, uncaught_handler=uncaught_handler) + if callable(after_logging): + after_logging(logger) + plugin_manager = init_pluginsystem(settings) return settings, logger, plugin_manager @@ -198,11 +210,15 @@ class OctoPrintDaemon(Daemon): def run_server(basedir, configfile, host, port, debug, allow_root, logging_config): + def log_startup(_): + logging.getLogger("octoprint.server").info("Starting OctoPrint {}".format(__display_version__)) + settings, _, plugin_manager = init_platform(basedir, configfile, logging_file=logging_config, debug=debug, - uncaught_logger=__name__) + uncaught_logger=__name__, + after_logging=log_startup) octoprint = Server(settings=settings, plugin_manager=plugin_manager, host=host, port=port, debug=debug, allow_root=allow_root) octoprint.run() diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 4f33f5a6..c02628b2 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -49,6 +49,7 @@ admin_permission = Permission(RoleNeed("admin")) user_permission = Permission(RoleNeed("user")) # only import the octoprint stuff down here, as it might depend on things defined above to be initialized already +from octoprint import __version__, __branch__, __display_version__ from octoprint.printer import get_connection_options from octoprint.printer.profile import PrinterProfileManager from octoprint.printer.standard import Printer @@ -67,11 +68,9 @@ from . import util UI_API_KEY = ''.join('%02X' % ord(z) for z in uuid.uuid4().bytes) -versions = octoprint._version.get_versions() -VERSION = versions['version'] -BRANCH = versions['branch'] if 'branch' in versions else None -DISPLAY_VERSION = "%s (%s branch)" % (VERSION, BRANCH) if BRANCH else VERSION -del versions +VERSION = __version__ +BRANCH = __branch__ +DISPLAY_VERSION = __display_version__ LOCALES = [] LANGUAGES = set() @@ -157,8 +156,6 @@ class Server(): self._logger = logging.getLogger(__name__) pluginManager = self._plugin_manager - self._logger.info("Starting OctoPrint %s" % DISPLAY_VERSION) - # monkey patch a bunch of stuff util.tornado.fix_ioloop_scheduling() util.flask.enable_additional_translations(additional_folders=[self._settings.getBaseFolder("translations")]) @@ -1000,6 +997,3 @@ class LifecycleManager(object): if callback in self._plugin_lifecycle_callbacks[event]: self._plugin_lifecycle_callbacks[event].remove(callback) -if __name__ == "__main__": - server = Server() - server.run()