cmd.rs 842 B

123456789101112131415161718192021222324252627282930
  1. use crate::cmd::config::{AppConfig, EMU_CONFIG};
  2. use clap::Parser;
  3. use tokio::fs::read_to_string;
  4. #[derive(Parser, Debug)]
  5. #[command(version, about, long_about = None)]
  6. struct Args {
  7. #[arg(short, long, value_name = "EMU配置文件")]
  8. config: String,
  9. }
  10. pub async fn cmd() {
  11. let args = Args::parse();
  12. match init_config(args.config).await {
  13. Ok(()) => {
  14. println!("{:?}", EMU_CONFIG.get().unwrap());
  15. }
  16. Err(e) => {
  17. eprintln!("配置加载失败: {}", e.to_string());
  18. }
  19. }
  20. }
  21. /// 配置载入内存
  22. async fn init_config(config_path: String) -> anyhow::Result<()> {
  23. let content = read_to_string(config_path).await?;
  24. let app_config: AppConfig = serde_yml::from_str(content.as_str())?;
  25. EMU_CONFIG.set(app_config).expect("配置载入内存错误");
  26. Ok(())
  27. }