use std::{fs, path::Path};
pub fn patch_api_rs(base: &Path, snake: &str) -> Result<(), Box<dyn std::error::Error>> {
let path = base.join("presentation/src/api.rs");
let mut src = fs::read_to_string(&path)?;
let original = src.clone();
if !src.contains("pub mod tags;") {
if !src.ends_with('\n') && !src.is_empty() {
src.push('\n');
}
src.push_str("pub mod tags;\n");
}
let mod_line = format!("pub mod {snake};\n");
if !src.contains(&mod_line) {
if !src.ends_with('\n') && !src.is_empty() {
src.push('\n');
}
src.push_str(&mod_line);
}
if src != original {
fs::write(&path, src)?;
}
Ok(())
}