blue_build/commands/
completions.rs1use 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}