use std::io;
use std::path::Path;
pub fn write_if_changed(path: &Path, content: &str) -> io::Result<bool> {
if path.exists() {
let existing = std::fs::read_to_string(path).unwrap_or_default();
if existing == content {
return Ok(false);
}
}
if let Some(parent) = path.parent() {
std::fs::create_dir_all(parent)?;
}
std::fs::write(path, content)?;
Ok(true)
}
pub fn write_sentinel(path: &Path) -> io::Result<()> {
if let Some(parent) = path.parent() {
std::fs::create_dir_all(parent)?;
}
std::fs::write(
path,
"managed by git-worktree-manager (`gw setup-claude`); safe to delete on uninstall\n",
)
}
pub fn sentinel_present(path: &Path) -> bool {
path.exists()
}