use std::env;
use std::path::Path;
use anyhow::{Context, Result};
use clap_complete::generate_to;
use clap_complete::shells::{Bash, Elvish, Fish, PowerShell, Zsh};
include!("src/app.rs");
const APP_NAME: &str = "wado";
fn main() -> Result<()> {
generate_shell_completions()?;
Ok(())
}
fn generate_shell_completions() -> Result<()> {
let manifest_dir =
env::var("CARGO_MANIFEST_DIR").with_context(|| "CARGO_MANIFEST_DIR not set")?;
let manifest_dir = Path::new(manifest_dir.as_str()).join("completions/");
let mut app = build_app();
app.set_bin_name(APP_NAME);
generate_to(Bash, &mut app, APP_NAME, &manifest_dir)?;
generate_to(Fish, &mut app, APP_NAME, &manifest_dir)?;
generate_to(Zsh, &mut app, APP_NAME, &manifest_dir)?;
generate_to(PowerShell, &mut app, APP_NAME, &manifest_dir)?;
generate_to(Elvish, &mut app, APP_NAME, &manifest_dir)?;
Ok(())
}