Files
pezkuwi-subxt/subxt/build.rs
T
2025-12-15 14:07:11 +00:00

30 lines
1002 B
Rust

//! Build
use std::process::Command;
fn main() {
// We want to be able to link to examples on GitHub specific to the current version.
// So, output an env var with either the git tag if one points to the current code, or
// the git hash pointing to the current code if no tag, or master if we
// encounter some error and can't be more specific.
if let Ok(tag) = Command::new("git").args(["tag", "--points-at"]).output()
&& tag.status.success()
&& !tag.stdout.is_empty()
{
write_to_out(&tag.stdout)
} else if let Ok(commit_hash) = Command::new("git").args(["rev-parse", "HEAD"]).output()
&& commit_hash.status.success()
&& !commit_hash.stdout.is_empty()
{
write_to_out(&commit_hash.stdout)
} else {
write_to_out(b"master")
}
}
fn write_to_out(v: &[u8]) {
let out = String::from_utf8_lossy(v);
println!("cargo::rustc-env=SUBXT_REF={out}");
println!("cargo::rerun-if-env-changed=SUBXT_REF");
}