use anyhow::{Context, Result};
use vtcode_core::cli::ManPageGenerator;
use vtcode_core::utils::file_utils::write_file_with_context_sync;
pub async fn handle_man_command(
command: Option<String>,
output: Option<std::path::PathBuf>,
) -> Result<()> {
let content = match command.as_deref() {
Some(cmd) => ManPageGenerator::generate_command_man_page(cmd)
.with_context(|| format!("Failed to generate man page for {}", cmd))?,
None => ManPageGenerator::generate_main_man_page()
.context("Failed to generate main man page")?,
};
if let Some(path) = output {
write_file_with_context_sync(&path, &content, "man page")?;
println!("Wrote man page to {}", path.display());
} else {
println!("{}", content);
}
Ok(())
}