#rust #rust-cargo #clap #structopt
#Ржавчина #rust-cargo #хлоп #structopt
Вопрос:
В настоящее время я пытаюсь написать 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 ?
Комментарии:
1. для этого в cargo —out-dir есть флаг, но он все еще находится в ночной версии, см. doc.rust-lang.org/cargo/commands/cargo-build.html
2. Я не могу использовать nightly в коде, над которым я работаю.