fn main() -> Result<(), Box> { let s = std::fs::read_to_string(std::env::var("CARGO_MANIFEST_DIR")? + "/cargo.lock")?; let lock = s.parse::().unwrap(); let mut reqwest_ver: Option = None; for p in lock.as_table().unwrap()["package"].as_array().unwrap() { if p["name"].as_str().unwrap() == "reqwest" { reqwest_ver = Some(p["version"].as_str().unwrap().into()); break; } } println!( "cargo:rustc-env=REQWEST_VER={}", reqwest_ver.ok_or_else(|| "No reqwest ver found")? ); Ok(()) }