apicurio-cli 0.1.2

A powerful CLI tool for managing schema artifacts from Apicurio Registry with lockfile-based dependency management
use crate::Cli;
use anyhow::Result;
use clap::CommandFactory;
use clap_complete::{
    generate,
    shells::{Bash, Fish, Zsh},
};
use std::io;

pub fn run(shell: String) -> Result<()> {
    let mut cmd = Cli::command();
    match shell.as_str() {
        "bash" => generate(Bash, &mut cmd, "apicurio", &mut io::stdout()),
        "zsh" => generate(Zsh, &mut cmd, "apicurio", &mut io::stdout()),
        "fish" => generate(Fish, &mut cmd, "apicurio", &mut io::stdout()),
        other => {
            eprintln!("unsupported shell '{other}', choose: bash, zsh, fish");
            std::process::exit(1);
        }
    }
    Ok(())
}