things3_cloud/commands/
completions.rs1use anyhow::Result;
2use clap::{Args, CommandFactory};
3use clap_complete::{Shell, generate};
4
5use crate::{app::Cli, commands::Command};
6
7#[derive(Debug, Clone, Args)]
8pub struct CompletionsArgs {
9 #[arg(value_enum)]
10 pub shell: Shell,
11}
12
13impl Command for CompletionsArgs {
14 fn run_with_ctx(
15 &self,
16 _cli: &Cli,
17 out: &mut dyn std::io::Write,
18 _ctx: &mut dyn crate::cmd_ctx::CmdCtx,
19 ) -> Result<()> {
20 let mut cmd = Cli::command();
21 let bin_name = cmd.get_name().to_string();
22 generate(self.shell, &mut cmd, bin_name, out);
23 Ok(())
24 }
25}