mirror of
https://github.com/typst/typst
synced 2025-05-13 12:36:23 +08:00
Check the exit status of the `git` invocation before parsing the output. If there's no `.git` the output may look like: ``` fatal: not a git repository (or any of the parent directories): .git ``` and the version shall be set to unknown.
13 lines
409 B
Rust
13 lines
409 B
Rust
use std::process::Command;
|
|
|
|
fn main() {
|
|
let version = Command::new("git")
|
|
.args(&["rev-parse", "HEAD"])
|
|
.output()
|
|
.ok()
|
|
.and_then(|output| output.status.success().then(|| output))
|
|
.and_then(|output| String::from_utf8(output.stdout[..8].into()).ok())
|
|
.unwrap_or_else(|| "(unknown version)".into());
|
|
println!("cargo:rustc-env=TYPST_VERSION={version}");
|
|
}
|