command.rs 857 B

1234567891011121314151617181920212223242526272829303132
  1. use std::path::PathBuf;
  2. use clap::Parser;
  3. #[derive(Debug, Parser, Clone)]
  4. pub struct CommandLineArgs {
  5. #[arg(short, long)]
  6. /// The kernel ELF file to load.
  7. pub kernel: PathBuf,
  8. /// The kernel memory file to load.
  9. #[arg(long, value_parser=kmem_file_parser, default_value = "/dev/shm/dragonos-qemu-shm.ram")]
  10. pub kmem: String,
  11. /// If set, the monitor will start the TUI.
  12. #[arg(long, default_value = "false")]
  13. pub tui: bool,
  14. /// The directory to store the log files.
  15. #[arg(long, default_value = "logs")]
  16. pub log_dir: PathBuf,
  17. }
  18. /// 用于解析kmem参数的函数
  19. fn kmem_file_parser(s: &str) -> Result<String, String> {
  20. log::warn!("kmem_file_parser: {}", s);
  21. if s.len() == 0 {
  22. return Ok("/dev/shm/dragonos-qemu-shm.ram".to_string());
  23. } else {
  24. return Ok(s.to_string());
  25. }
  26. }