Skip to main content

blue_build/commands/
completions.rs

1use clap::{Args, CommandFactory};
2use clap_complete::generate;
3use miette::Result;
4use shells::Shells;
5
6use crate::commands::BlueBuildArgs;
7
8use super::BlueBuildCommand;
9
10mod shells;
11
12#[derive(Debug, Clone, Args)]
13pub struct CompletionsCommand {
14    #[arg(value_enum)]
15    shell: Shells,
16}
17
18impl BlueBuildCommand for CompletionsCommand {
19    fn try_run(&mut self) -> Result<()> {
20        log::debug!("Generating completions for {}", self.shell);
21
22        generate(
23            self.shell,
24            &mut BlueBuildArgs::command(),
25            "bluebuild",
26            &mut std::io::stdout().lock(),
27        );
28
29        Ok(())
30    }
31}