diff --git a/crates/notedeck_columns/build.rs b/crates/notedeck_columns/build.rs index 89782dd0..c1946d50 100644 --- a/crates/notedeck_columns/build.rs +++ b/crates/notedeck_columns/build.rs @@ -1,10 +1,29 @@ use std::process::Command; -fn main() { - if let Ok(output) = Command::new("git").args(["rev-parse", "HEAD"]).output() { - if output.status.success() { - let hash = String::from_utf8_lossy(&output.stdout); - println!("cargo:rustc-env=GIT_COMMIT_HASH={}", hash.trim()); - } +fn fallback() { + if let Some(dirname) = std::env::current_dir() + .as_ref() + .ok() + .and_then(|cwd| cwd.file_name().and_then(|fname| fname.to_str())) + { + println!("cargo:rustc-env=GIT_COMMIT_HASH={}", dirname); + } else { + println!("cargo:rustc-env=GIT_COMMIT_HASH=unknown"); + } +} + +fn main() { + let output = if let Ok(output) = Command::new("git").args(["rev-parse", "HEAD"]).output() { + output + } else { + fallback(); + return; + }; + + if output.status.success() { + let hash = String::from_utf8_lossy(&output.stdout); + println!("cargo:rustc-env=GIT_COMMIT_HASH={}", hash.trim()); + } else { + fallback(); } }