use std::{
collections::hash_map::DefaultHasher,
hash::{Hash, Hasher},
};
fn main() {
let magic_key = "_coverageSchema";
let mut hasher = DefaultHasher::new();
let name = std::env::var("CARGO_PKG_NAME").unwrap();
let version = std::env::var("CARGO_PKG_VERSION_MAJOR").unwrap();
format!("{}@{}", name, version).hash(&mut hasher);
let magic_value = hasher.finish().to_string();
let out_dir = std::env::var_os("OUT_DIR").unwrap();
let path = std::path::Path::new(&out_dir).join("constants.rs");
std::fs::write(
&path,
format!(
r#"pub static COVERAGE_MAGIC_KEY: &'static str = "{}";
pub static COVERAGE_MAGIC_VALUE: &'static str = "{}";"#,
magic_key, magic_value
),
)
.unwrap();
let out_dir = std::env::var_os("CARGO_MANIFEST_DIR").unwrap();
let path = std::path::PathBuf::from(&out_dir)
.join("../../spec/util/")
.join("constants.ts");
let _ = std::fs::write(
&path,
format!(
r#"const COVERAGE_MAGIC_KEY = "{}";
const COVERAGE_MAGIC_VALUE = "{}";
export {{
COVERAGE_MAGIC_KEY,
COVERAGE_MAGIC_VALUE
}}"#,
magic_key, magic_value
),
);
}