0

目前我正在尝试编写一个build.rs为 cli 应用程序创建一堆自动完成脚本的程序。

// build.rs
fn main() {
    let outdir = match std::env::var_os("OUT_DIR") {
        None => return,
        Some(outdir) => outdir,
    };

    Args::clap().gen_completions("monk", structopt::clap::Shell::Bash, outdir.clone());
    ...
}

目前,这会输出./target/debug/build/monk-cli-43148fdfeeafb947/out/monk.bash. 我想将这些脚本打包到 CICD 管道中,但是脚本的路径不一致。有没有办法可以将这些文件输出到一致的目录,例如./target/completions/monk.bash,或者我应该在 build.rs 以外的其他地方生成自动完成脚本?

4

0 回答 0