Honor rust-toolchain.toml file in xtask, remove cargo/rust env vars

Remove env vars related to rust and cargo before executing cargo.
pull/70/head
arctic-alpaca 2 years ago
parent 2ba73f6f2f
commit 039c07f7a2
No known key found for this signature in database
GPG Key ID: F911E2A7F537230E

@ -1,4 +1,4 @@
use std::{path::PathBuf, process::Command};
use std::{collections::HashMap, env, path::PathBuf, process::Command};
use clap::Parser;
@ -43,7 +43,6 @@ pub fn build_ebpf(opts: Options) -> Result<(), anyhow::Error> {
let dir = PathBuf::from("{{project-name}}-ebpf");
let target = format!("--target={}", opts.target);
let mut args = vec![
"+nightly",
"build",
"--verbose",
target.as_str(),
@ -53,8 +52,18 @@ pub fn build_ebpf(opts: Options) -> Result<(), anyhow::Error> {
if opts.release {
args.push("--release")
}
// Command::new creates a child process which inherits all env variables. This means env
// vars set by the cargo xtask command are also inherited. All env vars related to the
// cargo xtask invocation are removed.
let filtered_env: HashMap<String, String> = env::vars()
.filter(|&(ref k, _)| !k.starts_with("CARGO") && !k.starts_with("RUST"))
.collect();
let status = Command::new("cargo")
.current_dir(dir)
.env_clear()
.envs(&filtered_env)
.args(&args)
.status()
.expect("failed to build bpf program");

Loading…
Cancel
Save