things3_cloud/commands/
completions.rs1use crate::app::Cli;
2use crate::commands::Command;
3use anyhow::Result;
4use clap::{Args, CommandFactory};
5use clap_complete::{generate, Shell};
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}