Fail gracefully if git does not exist

This commit is contained in:
Laurenz 2023-03-21 23:39:09 +01:00
parent b934a2fd83
commit a6b63b96f9
2 changed files with 9 additions and 7 deletions

View File

@ -1,9 +1,11 @@
use std::error::Error;
use std::process::Command;
fn main() -> Result<(), Box<dyn Error>> {
let output = Command::new("git").args(&["rev-parse", "HEAD"]).output()?;
let hash = std::str::from_utf8(&output.stdout)?;
println!("cargo:rustc-env=TYPST_HASH={}", &hash[..8]);
Ok(())
fn main() {
let version = Command::new("git")
.args(&["rev-parse", "HEAD"])
.output()
.ok()
.and_then(|output| String::from_utf8(output.stdout[..8].into()).ok())
.unwrap_or_else(|| "(unknown version)".into());
println!("cargo:rustc-env=TYPST_VERSION={version}");
}

View File

@ -156,7 +156,7 @@ fn print_help(help: &'static str) -> ! {
/// Print the version hash and quit.
fn print_version() -> ! {
println!("typst {}", env!("TYPST_HASH"));
println!("typst {}", env!("TYPST_VERSION"));
std::process::exit(0);
}