use crate::cli::Cli;
use clap::CommandFactory;
use clap_complete::Shell;
use std::io;
pub fn execute(shell: Shell) {
let mut cmd = Cli::command();
clap_complete::generate(shell, &mut cmd, "exarch", &mut io::stdout());
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_completion_generation() {
for shell in [
Shell::Bash,
Shell::Zsh,
Shell::Fish,
Shell::PowerShell,
Shell::Elvish,
] {
let result = std::panic::catch_unwind(|| {
let mut cmd = Cli::command();
let mut output = Vec::new();
clap_complete::generate(shell, &mut cmd, "exarch", &mut output);
output
});
assert!(result.is_ok(), "Completion generation failed for {shell:?}");
}
}
}