cc-persona 0.3.0

Fast persona switching for Claude Code via config overlays and symlinks
use anyhow::{Result, bail};

use crate::config::{AppConfig, Paths, Scope};
use crate::persona::Persona;

pub fn run(paths: &Paths, scope: &Scope, name: Option<String>) -> Result<()> {
    let persona_name = match name {
        Some(n) => n,
        None => {
            let config = AppConfig::load(&paths.config)?;
            match config.binding(scope) {
                Some(n) => n.to_string(),
                None => bail!("No active persona. Specify a name: cc-persona show <name>"),
            }
        }
    };

    let resolved = Persona::resolve(&persona_name, &paths.personas)?;
    let toml_str = toml::to_string_pretty(&resolved)?;
    println!("{}", toml_str);
    Ok(())
}