diff --git a/app/classes/shared/console.py b/app/classes/shared/console.py index 1d70d893..087cdcc4 100644 --- a/app/classes/shared/console.py +++ b/app/classes/shared/console.py @@ -1,6 +1,6 @@ import datetime import logging -from sys import modules +import sys logger = logging.getLogger(__name__) @@ -11,18 +11,20 @@ try: except ModuleNotFoundError as e: logging.critical("Import Error: Unable to load {} module".format(e, e.name)) print("Import Error: Unable to load {} module".format(e, e.name)) - pass + from app.classes.shared.installer import installer + installer.do_install() + sys.exit(1) class Console: def __init__(self): - if 'colorama' in modules: + if 'colorama' in sys.modules: init() @staticmethod def do_print(message, color): - if 'termcolor' in modules or 'colorama' in modules: + if 'termcolor' in sys.modules or 'colorama' in sys.modules: print(colored(message, color)) else: print(message) diff --git a/app/classes/shared/installer.py b/app/classes/shared/installer.py new file mode 100644 index 00000000..e52191ea --- /dev/null +++ b/app/classes/shared/installer.py @@ -0,0 +1,25 @@ +import sys +import subprocess + + +class install: + + @staticmethod + def is_venv(): + return (hasattr(sys, 'real_prefix') or + (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix)) + + def do_install(self): + + # are we in a venv? + if not self.is_venv(): + print("Crafty Requires a venv to install") + sys.exit(1) + + # do our pip install + subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", 'requirements.txt']) + print("Crafty has installed it's dependencies, please restart Crafty") + sys.exit(0) + + +installer = install() \ No newline at end of file diff --git a/app/classes/web/panel_handler.py b/app/classes/web/panel_handler.py index 4433f8b8..c380ff5d 100644 --- a/app/classes/web/panel_handler.py +++ b/app/classes/web/panel_handler.py @@ -112,9 +112,9 @@ class PanelHandler(BaseHandler): valid_subpages = ['term', 'logs', 'config', 'files'] if subpage not in valid_subpages: - console.debug('not a valid subpage') + logger.debug('not a valid subpage') subpage = 'term' - console.debug('Subpage: "{}"'.format(subpage)) + logger.debug('Subpage: "{}"'.format(subpage)) # server_data isn't needed since the server_stats also pulls server data # page_data['server_data'] = db_helper.get_server_data_by_id(server_id) diff --git a/main.py b/main.py index 108abefc..7ef4b02f 100644 --- a/main.py +++ b/main.py @@ -44,7 +44,9 @@ def setup_logging(debug=False): logging_config = json.load(f) if debug: logging_config['loggers']['']['level'] = 'DEBUG' + logging.config.dictConfig(logging_config) + else: logging.basicConfig(level=logging.DEBUG) logging.warning("Unable to read logging config from {}".format(logging_config_file)) @@ -74,6 +76,7 @@ if __name__ == '__main__': # setting up the logger object logger = logging.getLogger(__name__) + print("Logging set to: {} ".format(logger.level)) # print our pretty start message do_intro()