#!/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())