VWED_server/packaging/config_tool/create_config.py

184 lines
5.1 KiB
Python
Raw Normal View History

2025-09-09 10:41:27 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
配置文件创建工具
用于测试和创建默认配置文件
"""
import os
import sys
import configparser
from pathlib import Path
def create_default_config():
"""创建默认配置文件"""
# 确定配置文件位置
if getattr(sys, 'frozen', False):
# 打包后的环境
app_dir = Path(sys.executable).parent
else:
# 开发环境
app_dir = Path(__file__).parent.parent.parent
config_file = app_dir / "config.ini"
print(f"创建配置文件: {config_file}")
# 创建配置
config = configparser.ConfigParser()
# 数据库配置
config['database'] = {
'username': 'root',
'password': 'root',
'host': 'localhost',
'port': '3306',
'database': 'vwed_task'
}
# API配置
config['api'] = {
'tf_api_base_url': 'http://111.231.146.230:4080/jeecg-boot'
}
# 服务配置
config['service'] = {
'port': '8000',
'host': '0.0.0.0'
}
# 写入配置文件
try:
with open(str(config_file), 'w', encoding='utf-8') as f:
config.write(f)
print("✓ 配置文件创建成功")
# 显示配置内容
print("\n配置内容:")
with open(str(config_file), 'r', encoding='utf-8') as f:
print(f.read())
return True
except Exception as e:
print(f"✗ 配置文件创建失败: {e}")
return False
def read_config():
"""读取配置文件"""
if getattr(sys, 'frozen', False):
app_dir = Path(sys.executable).parent
else:
app_dir = Path(__file__).parent.parent.parent
config_file = app_dir / "config.ini"
if not config_file.exists():
print(f"配置文件不存在: {config_file}")
return False
try:
config = configparser.ConfigParser()
config.read(str(config_file), encoding='utf-8')
print(f"读取配置文件: {config_file}")
# 显示所有配置
for section_name in config.sections():
print(f"\n[{section_name}]")
for key, value in config[section_name].items():
print(f"{key} = {value}")
return True
except Exception as e:
print(f"读取配置文件失败: {e}")
return False
def test_config_loading():
"""测试配置加载"""
print("测试配置加载...")
try:
from startup_loader import load_startup_config
result = load_startup_config()
if result:
print("✓ 配置加载成功")
# 显示环境变量
env_vars = ['DB_USER', 'DB_PASSWORD', 'DB_HOST', 'TF_API_BASE_URL']
print("\n环境变量:")
for var in env_vars:
value = os.environ.get(var, '未设置')
print(f"{var} = {value}")
return True
else:
print("✗ 配置加载失败")
return False
except ImportError as e:
print(f"✗ 无法导入配置加载器: {e}")
return False
except Exception as e:
print(f"✗ 配置加载测试异常: {e}")
return False
def main():
"""主函数"""
print("VWED配置工具测试")
print("=" * 40)
import argparse
parser = argparse.ArgumentParser(description="配置文件管理工具")
parser.add_argument("--create", action="store_true", help="创建默认配置文件")
parser.add_argument("--read", action="store_true", help="读取配置文件")
parser.add_argument("--test", action="store_true", help="测试配置加载")
parser.add_argument("--all", action="store_true", help="执行所有操作")
args = parser.parse_args()
if args.all or len(sys.argv) == 1:
# 执行所有操作
operations = [
("创建配置文件", create_default_config),
("读取配置文件", read_config),
("测试配置加载", test_config_loading)
]
else:
operations = []
if args.create:
operations.append(("创建配置文件", create_default_config))
if args.read:
operations.append(("读取配置文件", read_config))
if args.test:
operations.append(("测试配置加载", test_config_loading))
results = []
for op_name, op_func in operations:
print(f"\n=== {op_name} ===")
try:
result = op_func()
results.append((op_name, result))
except Exception as e:
print(f"操作失败: {e}")
results.append((op_name, False))
# 总结
if results:
print("\n" + "=" * 40)
print("操作结果:")
all_success = True
for op_name, result in results:
status = "" if result else ""
print(f"{status} {op_name}")
if not result:
all_success = False
return 0 if all_success else 1
else:
print("没有执行任何操作")
return 0
if __name__ == "__main__":
exit(main())