Newer
Older
use std::fs::File;
use std::io::{BufReader, Read};
use std::path::PathBuf;
fn sha256_digest(path: &PathBuf) -> Result<String, anyhow::Error> {
let input = File::open(path)?;
let mut reader = BufReader::new(input);
let digest = {
let mut hasher = Sha256::new();
let mut buffer = [0; 1024];
loop {
let count = reader.read(&mut buffer)?;
if count == 0 {
break;
}
hasher.update(&buffer[..count]);
}
hasher.finalize()
};
Ok(data_encoding::HEXLOWER.encode(digest.as_ref()))
}
println!("cargo:rustc-env=BUILD_DATE={}-{}-{}", date.year(), date.month(), date.day());
let output = Command::new("git").args(&["rev-parse", "--short=10", "HEAD"]).output().unwrap();
println!("cargo:rustc-env=GIT_HASH={}", String::from_utf8(output.stdout).unwrap());
let output_full = Command::new("git").args(&["rev-parse", "HEAD"]).output().unwrap();
println!("cargo:rustc-env=GIT_HASH_FULL={}", String::from_utf8(output_full.stdout).unwrap());
println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
println!("cargo:rustc-env=FILE_SHA={}", sha256_digest(&PathBuf::from("src/go/embed/external")).unwrap());