1*ce26d675SLoGin use clap::Parser; 2eaa67f3cSLoGin 3eaa67f3cSLoGin // 定义一个枚举类型 RootFSCommand,表示根文件系统操作命令 4*ce26d675SLoGin #[derive(Debug, Parser, Clone, PartialEq, Eq)] 5eaa67f3cSLoGin pub enum RootFSCommand { 6eaa67f3cSLoGin /// 创建根文件系统(磁盘镜像) 7*ce26d675SLoGin Create(CreateCommandParam), 8eaa67f3cSLoGin /// 删除根文件系统(磁盘镜像) 9eaa67f3cSLoGin Delete, 10eaa67f3cSLoGin /// 删除系统根目录(sysroot文件夹) 11eaa67f3cSLoGin DeleteSysroot, 12eaa67f3cSLoGin /// 挂载根文件系统(磁盘镜像) 13eaa67f3cSLoGin Mount, 14eaa67f3cSLoGin /// 卸载根文件系统(磁盘镜像) 157a97f354SLoGin Umount, 16*ce26d675SLoGin /// 输出磁盘镜像的挂载点 17*ce26d675SLoGin #[clap(name = "show-mountpoint")] 18*ce26d675SLoGin ShowMountPoint, 19*ce26d675SLoGin /// 输出磁盘镜像挂载到的loop设备 20*ce26d675SLoGin ShowLoopDevice, 21*ce26d675SLoGin /// 检查磁盘镜像文件是否存在 22*ce26d675SLoGin CheckDiskImageExists, 23*ce26d675SLoGin } 24*ce26d675SLoGin 25*ce26d675SLoGin #[derive(Debug, Parser, Clone, PartialEq, Eq)] 26*ce26d675SLoGin pub struct CreateCommandParam { 27*ce26d675SLoGin /// 当磁盘镜像文件存在时,跳过创建 28*ce26d675SLoGin #[clap(long = "skip-if-exists", default_value = "false")] 29*ce26d675SLoGin pub skip_if_exists: bool, 30eaa67f3cSLoGin } 31