typst/cli/build.rs
Felix Obenhuber 26f4321a5e
Fix build if not on a git checkout (#119)
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.
2023-03-22 09:02:16 +01:00

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}");
}