目前我正在尝试编写一个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 以外的其他地方生成自动完成脚本?