Skip to main content

things3_cloud/commands/
completions.rs

1use 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}