use std::process::Command;
#[allow(non_upper_case_globals)]
pub const __version__: &str = "2.8.4";
pub fn get_version() -> String {
match Command::new("git") .args([
"rev-list",
"--count",
&format!("{}..HEAD", __version__), ])
.stderr(std::process::Stdio::null()) .output()
{
Ok(out) if out.status.success() => {
let count = String::from_utf8_lossy(&out.stdout).trim().to_string(); format!("{}b{}", __version__, count) }
_ => __version__.to_string(), }
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn version_constant_matches_upstream() {
assert_eq!(__version__, "2.8.4");
}
#[test]
fn get_version_returns_nonempty() {
let v = get_version();
assert!(v.starts_with(__version__));
assert!(!v.is_empty());
}
}