use anyhow::Result;
use clap::{value_parser, CommandFactory, Parser};
use clap_complete::Shell;
use log::info;
use std::io;
use crate::cli::Cli;
#[derive(Debug, Parser)]
pub struct GenerateCompletionCommand {
#[arg(value_parser = value_parser!(Shell))]
pub shell: Shell,
}
impl GenerateCompletionCommand {
pub async fn execute(self) -> Result<()> {
info!("executing generate completion command");
let mut cmd = Cli::command();
let name = cmd.get_name().to_string();
clap_complete::generate(self.shell, &mut cmd, name, &mut io::stdout());
Ok(())
}
}