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 {
17 path: path.clone(),
18 original,
19 });
20 std::fs::remove_file(&path)?;
21 }
22 }
23
24 Ok(rollbacks)
25}