use std::sync::OnceLock;
include!(concat!(env!("OUT_DIR"), "/scsh_build_info.rs"));
pub fn pkg_version() -> &'static str {
env!("CARGO_PKG_VERSION")
}
pub fn git_stamp() -> String {
static CACHE: OnceLock<String> = OnceLock::new();
CACHE.get_or_init(|| GIT_DESCRIBE.to_string()).clone()
}
pub fn display() -> String {
let git = git_stamp();
if git.is_empty() {
pkg_version().to_string()
} else {
format!("{} ({git})", pkg_version())
}
}
#[cfg(test)]
mod tests {
use super::{display, pkg_version};
#[test]
fn display_includes_pkg_version() {
let line = display();
assert!(line.starts_with(pkg_version()));
}
}