use std::{fs::File, io::Write};
use shadow_rs::SdResult;
fn main() -> SdResult<()> {
shadow_rs::new_hook(hook)?;
Ok(())
}
fn hook(mut file: &File) -> SdResult<()> {
let env_var_git_hash = std::env::var("GIT_HASH").unwrap_or_default();
writeln!(file, "const ENV_GIT_HASH: &str = \"{}\";", env_var_git_hash)?;
hook_method(file)?;
Ok(())
}
fn hook_method(mut file: &File) -> SdResult<()> {
let hook_fn = r#"
pub const fn short_commit() -> &'static str {
if shadow_rs::str_get!(SHORT_COMMIT, 0).is_some() {
return SHORT_COMMIT;
}
if shadow_rs::str_get!(ENV_GIT_HASH, 0).is_some() {
ENV_GIT_HASH
} else {
"unknown"
}
}"#;
writeln!(file, "{}", hook_fn)?;
Ok(())
}