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; use std::process::Command;
fn main() -> Result<(), Box<dyn Error>> { fn main() {
let output = Command::new("git").args(&["rev-parse", "HEAD"]).output()?; let version = Command::new("git")
let hash = std::str::from_utf8(&output.stdout)?; .args(&["rev-parse", "HEAD"])
println!("cargo:rustc-env=TYPST_HASH={}", &hash[..8]); .output()
Ok(()) .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. /// Print the version hash and quit.
fn print_version() -> ! { fn print_version() -> ! {
println!("typst {}", env!("TYPST_HASH")); println!("typst {}", env!("TYPST_VERSION"));
std::process::exit(0); std::process::exit(0);
} }