oxide_cli/addons/steps/
delete.rs1use std::path::Path;
2
3use anyhow::Result;
4
5use crate::addons::manifest::DeleteStep;
6
7use super::{Rollback, resolve_target};
8
9pub fn execute_delete(step: &DeleteStep, project_root: &Path) -> Result<Vec<Rollback>> {
10 let paths = resolve_target(&step.target, project_root)?;
11 let mut rollbacks = Vec::new();
12
13 for path in paths {
14 if path.exists() {
15 let original = std::fs::read(&path)?;
16 rollbacks.push(Rollback::RestoreFile { path: path.clone(), original });
17 std::fs::remove_file(&path)?;
18 }
19 }
20
21 Ok(rollbacks)
22}