40 lines
1 KiB
Rust
40 lines
1 KiB
Rust
|
use clap::{Command, CommandFactory};
|
||
|
// use clap_complete as complete;
|
||
|
use clap_mangen as mangen;
|
||
|
// use complete::Shell;
|
||
|
use std::{path::PathBuf, str::FromStr};
|
||
|
|
||
|
#[path = "src/cli.rs"]
|
||
|
mod cli;
|
||
|
|
||
|
use cli::*;
|
||
|
|
||
|
fn generate_manpage(cmd: Command, out_dir: PathBuf) -> std::io::Result<()> {
|
||
|
let _path = mangen::generate_to(cmd, &out_dir)?;
|
||
|
println!("cargo:warning=manpage is generated: {out_dir:?}");
|
||
|
|
||
|
Ok(())
|
||
|
}
|
||
|
|
||
|
// fn generate_completions(cmd: &mut Command, out_dir: PathBuf) -> std::io::Result<()> {
|
||
|
// let path = complete::generate_to(Shell::Zsh, cmd, "noise", out_dir)?;
|
||
|
// println!("cargo:warning=completion file is generated: {path:?}");
|
||
|
// Ok(())
|
||
|
// }
|
||
|
|
||
|
fn main() -> std::io::Result<()> {
|
||
|
let out_dir =
|
||
|
std::path::PathBuf::from(std::env::var_os("OUT_DIR").ok_or(std::io::ErrorKind::NotFound)?);
|
||
|
|
||
|
// let out_dir = PathBuf::from_str("./").unwrap();
|
||
|
|
||
|
let cmd = Cli::command();
|
||
|
|
||
|
generate_manpage(cmd, out_dir.clone())?;
|
||
|
|
||
|
// eprintln!("{out_dir:?}");
|
||
|
// println!("cargo:warning=out_dir: {out_dir:?}");
|
||
|
|
||
|
Ok(())
|
||
|
}
|