feat: 添加开发环境.env.dev初始化

This commit is contained in:
AL76
2025-03-09 22:05:35 +08:00
parent bc2ced0b1d
commit 6a66933452

15
bot.py
View File

@@ -1,5 +1,7 @@
import os import os
import shutil import shutil
import sys
import nonebot import nonebot
import time import time
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -22,11 +24,12 @@ def easter_egg():
rainbow_text += rainbow_colors[i % len(rainbow_colors)] + char rainbow_text += rainbow_colors[i % len(rainbow_colors)] + char
print(rainbow_text) print(rainbow_text)
def init_config(): def init_config():
# 初次启动检测 # 初次启动检测
if not os.path.exists("config/bot_config.toml"): if not os.path.exists("config/bot_config.toml"):
logger.warning("检测到bot_config.toml不存在正在从模板复制") logger.warning("检测到bot_config.toml不存在正在从模板复制")
# 检查config目录是否存在 # 检查config目录是否存在
if not os.path.exists("config"): if not os.path.exists("config"):
os.makedirs("config") os.makedirs("config")
@@ -35,6 +38,7 @@ def init_config():
shutil.copy("template/bot_config_template.toml", "config/bot_config.toml") shutil.copy("template/bot_config_template.toml", "config/bot_config.toml")
logger.info("复制完成请修改config/bot_config.toml和.env.prod中的配置后重新启动") logger.info("复制完成请修改config/bot_config.toml和.env.prod中的配置后重新启动")
def init_env(): def init_env():
# 初始化.env 默认ENVIRONMENT=prod # 初始化.env 默认ENVIRONMENT=prod
if not os.path.exists(".env"): if not os.path.exists(".env"):
@@ -46,11 +50,17 @@ def init_env():
logger.error("检测到.env.prod文件不存在") logger.error("检测到.env.prod文件不存在")
shutil.copy("template.env", "./.env.prod") shutil.copy("template.env", "./.env.prod")
# 检测.env.dev文件是否存在不存在的话直接复制生产环境配置
if not os.path.exists(".env.dev"):
logger.error("检测到.env.dev文件不存在")
shutil.copy(".env.prod", "./.env.dev")
# 首先加载基础环境变量.env # 首先加载基础环境变量.env
if os.path.exists(".env"): if os.path.exists(".env"):
load_dotenv(".env") load_dotenv(".env")
logger.success("成功加载基础环境变量配置") logger.success("成功加载基础环境变量配置")
def load_env(): def load_env():
# 使用闭包实现对加载器的横向扩展,避免大量重复判断 # 使用闭包实现对加载器的横向扩展,避免大量重复判断
def prod(): def prod():
@@ -70,7 +80,7 @@ def load_env():
logger.info(f"[load_env] 当前的 ENVIRONMENT 变量值:{env}") logger.info(f"[load_env] 当前的 ENVIRONMENT 变量值:{env}")
if env in fn_map: if env in fn_map:
fn_map[env]() # 根据映射执行闭包函数 fn_map[env]() # 根据映射执行闭包函数
elif os.path.exists(f".env.{env}"): elif os.path.exists(f".env.{env}"):
logger.success(f"加载{env}环境变量配置") logger.success(f"加载{env}环境变量配置")
@@ -115,6 +125,7 @@ def scan_provider(env_config: dict):
) )
raise ValueError(f"请检查 '{provider_name}' 提供商配置是否丢失 BASE_URL 或 KEY 环境变量") raise ValueError(f"请检查 '{provider_name}' 提供商配置是否丢失 BASE_URL 或 KEY 环境变量")
if __name__ == "__main__": if __name__ == "__main__":
# 利用 TZ 环境变量设定程序工作的时区 # 利用 TZ 环境变量设定程序工作的时区
# 仅保证行为一致,不依赖 localtime(),实际对生产环境几乎没有作用 # 仅保证行为一致,不依赖 localtime(),实际对生产环境几乎没有作用