1234567891011121314151617181920212223242526 |
- use anyhow::{anyhow, Result};
- use crate::context::DADKExecContext;
- pub(super) fn delete(ctx: &DADKExecContext) -> Result<()> {
- let sysroot_dir = ctx.sysroot_dir()?;
- // 检查 sysroot_dir 是否存在
- if !sysroot_dir.exists() {
- return Err(anyhow!("Sysroot directory does not exist"));
- }
- // 检查 sysroot_dir 是否是一个目录
- if !sysroot_dir.is_dir() {
- return Err(anyhow!("Sysroot path is not a directory"));
- }
- // 检查 sysroot_dir 是否是当前工作目录的子目录
- if !sysroot_dir.starts_with(&ctx.workdir()) {
- return Err(anyhow!(
- "Sysroot directory must be a subdirectory of the current working directory"
- ));
- }
- std::fs::remove_dir_all(sysroot_dir)?;
- Ok(())
- }
|