use std::io::{self, Write};
use argx::{Parser, completion::Shell};
#[derive(Debug, Parser)]
#[argx(name = "completions")]
struct Cli {
#[argx(value_enum)]
shell: Shell,
}
fn main() {
let cli = Cli::parse();
let script = match Cli::render_completion(cli.shell) {
Ok(script) => script,
Err(error) => {
eprintln!("{error}");
std::process::exit(1);
}
};
if let Err(error) = io::stdout().lock().write_all(script.as_bytes()) {
eprintln!("failed to write completion script: {error}");
std::process::exit(1);
}
}