//! `keyhog completion <shell>` - print a shell completion script to stdout.
//!
//! Standard tooling for any clap-based CLI. Pipe to a shell-specific
//! location:
//!
//! ```text
//! keyhog completion bash > /usr/share/bash-completion/completions/keyhog
//! keyhog completion zsh > "${fpath[1]}/_keyhog"
//! keyhog completion fish > ~/.config/fish/completions/keyhog.fish
//! ```
use crate::args::{self, CompletionArgs};
pub(crate) fn run(args: CompletionArgs) {
// Script publication to stdout.
let _report_span = keyhog_profile::span(keyhog_profile::Stage::Reporting);
let mut cmd = args::command();
let bin_name = cmd.get_name().to_string();
clap_complete::generate(args.shell, &mut cmd, bin_name, &mut std::io::stdout());
}