use anyhow::{Context, Result};
use std::path::Path;
use crate::persona::ClaudeMdConfig;
use crate::symlink::replace_with_symlink;
pub fn switch_claude_md(
md_target_file: &Path,
store_md_dir: &Path,
config: &ClaudeMdConfig,
) -> Result<()> {
let filename = match &config.file {
Some(f) => f.as_str(),
None => return Ok(()), };
let target = store_md_dir.join(filename);
if !target.exists() {
if let Some(parent) = target.parent() {
std::fs::create_dir_all(parent)?;
}
std::fs::write(&target, "")
.with_context(|| format!("Failed to create {}", target.display()))?;
}
replace_with_symlink(md_target_file, &target).context("Failed to switch CLAUDE.md symlink")?;
Ok(())
}