jjj 0.4.1

Distributed project management and code review for Jujutsu
Documentation
use crate::cli::{Cli, Shell};
use crate::error::Result;
use clap::CommandFactory;
use clap_complete::{generate, shells};
use std::io;

pub fn execute(shell: Shell) -> Result<()> {
    let mut cmd = Cli::command();
    let bin_name = "jjj";

    match shell {
        Shell::Bash => {
            generate(shells::Bash, &mut cmd, bin_name, &mut io::stdout());
        }
        Shell::Zsh => {
            generate(shells::Zsh, &mut cmd, bin_name, &mut io::stdout());
        }
        Shell::Fish => {
            generate(shells::Fish, &mut cmd, bin_name, &mut io::stdout());
        }
        Shell::PowerShell => {
            generate(shells::PowerShell, &mut cmd, bin_name, &mut io::stdout());
        }
        Shell::Elvish => {
            generate(shells::Elvish, &mut cmd, bin_name, &mut io::stdout());
        }
    }

    Ok(())
}