use crate::cmd::config::{AppConfig, EMU_CONFIG}; use clap::Parser; use tokio::fs::read_to_string; #[derive(Parser, Debug)] #[command(version, about, long_about = None)] struct Args { #[arg(short, long, value_name = "EMU配置文件")] config: String, } pub async fn cmd() { let args = Args::parse(); match init_config(args.config).await { Ok(()) => { println!("{:?}", EMU_CONFIG.get().unwrap()); } Err(e) => { eprintln!("配置加载失败: {}", e.to_string()); } } } /// 配置载入内存 async fn init_config(config_path: String) -> anyhow::Result<()> { let content = read_to_string(config_path).await?; let app_config: AppConfig = serde_yml::from_str(content.as_str())?; EMU_CONFIG.set(app_config).expect("配置载入内存错误"); Ok(()) }