From eeee7a83436a2ec96f84211d699a1fc78c2ffe10 Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Sat, 8 Apr 2023 16:21:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=85=E5=9C=A8=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E8=A1=8C=E5=8F=82=E6=95=B0=E6=97=B6=E5=BA=94?= =?UTF-8?q?=E7=94=A8override.json=E7=9A=84=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index b4dc40fe..988f76ab 100644 --- a/main.py +++ b/main.py @@ -39,6 +39,11 @@ log_colors_config = { } +# 是否使用override.json覆盖配置 +# 仅在启动时提供 --override 或 -r 参数时生效 +use_override = False + + def init_db(): import pkg.database.manager database = pkg.database.manager.DatabaseManager() @@ -106,6 +111,19 @@ def reset_logging(): return sh +def override_config(): + import config + # 检查override.json覆盖 + if os.path.exists("override.json") and use_override: + override_json = json.load(open("override.json", "r", encoding="utf-8")) + for key in override_json: + if hasattr(config, key): + setattr(config, key, override_json[key]) + logging.info("覆写配置[{}]为[{}]".format(key, override_json[key])) + else: + logging.error("无法覆写配置[{}]为[{}],该配置不存在,请检查override.json是否正确".format(key, override_json[key])) + + # 临时函数,用于加载config和上下文,未来统一放在config类 def load_config(): logging.info("检查config模块完整性.") @@ -123,17 +141,10 @@ def load_config(): logging.warning("配置文件不完整,您可以依据config-template.py检查config.py") # 检查override.json覆盖 - if os.path.exists("override.json"): - override_json = json.load(open("override.json", "r", encoding="utf-8")) - for key in override_json: - if hasattr(config, key): - setattr(config, key, override_json[key]) - logging.info("覆写配置[{}]为[{}]".format(key, override_json[key])) - else: - logging.error("无法覆写配置[{}]为[{}],该配置不存在,请检查override.json是否正确".format(key, override_json[key])) + override_config() if not is_integrity: - logging.warning("以上配置已被设为默认值,将在3秒后继续启动... ") + logging.warning("以上不存在的配置已被设为默认值,将在3秒后继续启动... ") time.sleep(3) # 存进上下文 @@ -413,6 +424,11 @@ def check_file(): def main(): + global use_override + # 检查是否携带了 --override 或 -r 参数 + if '--override' in sys.argv or '-r' in sys.argv: + use_override = True + # 初始化相关文件 check_file()