Skip to content

Commit 2a4e776

Browse files
committed
Reimplement git version generation ourselves
This allows us to remove two dependency crates
1 parent a1e46a9 commit 2a4e776

File tree

4 files changed

+32
-31
lines changed

4 files changed

+32
-31
lines changed

Cargo.lock

Lines changed: 5 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ num-traits = "0.2.15"
3434
once_cell = "1.17.0"
3535
rand = { version = "0.8.5", features = ["small_rng"] }
3636
widestring = "1.0.2"
37-
git-version = "0.3"
3837
terminfo = { git = "https://github.com/meh/rust-terminfo", rev = "870327dd79beaecf50db09a15931d5ee1de2a24d" }
3938

4039
[dev-dependencies]

build.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ fn main() {
2424
.unwrap(),
2525
);
2626

27+
rsconf::set_env_value("FISH_BUILD_VERSION", &get_version(build_dir));
28+
2729
rsconf::rebuild_if_path_changed("src/libc.c");
2830
cc::Build::new()
2931
.file("src/libc.c")
@@ -193,3 +195,27 @@ fn setup_paths() {
193195
rsconf::set_env_value("DOCDIR", docdir.to_str().unwrap());
194196
rsconf::rebuild_if_env_changed("DOCDIR");
195197
}
198+
199+
fn get_version(build_dir: &str) -> String {
200+
use std::fs::read_to_string;
201+
use std::process::Command;
202+
203+
if let Ok(var) = std::env::var("FISH_BUILD_VERSION") {
204+
return var;
205+
}
206+
207+
let path = PathBuf::from(build_dir).join("version");
208+
if let Ok(strver) = read_to_string(path) {
209+
return strver.to_string();
210+
}
211+
212+
let args = &["describe", "--always", "--dirty=-dirty"];
213+
if let Ok(output) = Command::new("git").args(args).output() {
214+
let rev = String::from_utf8_lossy(&output.stdout).trim().to_string();
215+
if !rev.is_empty() {
216+
return rev;
217+
}
218+
}
219+
220+
"unknown".to_string()
221+
}

src/lib.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
#![allow(clippy::too_many_arguments)]
2323
#![allow(clippy::uninlined_format_args)]
2424

25-
pub const BUILD_VERSION: &str = match option_env!("FISH_BUILD_VERSION") {
26-
Some(v) => v,
27-
None => git_version::git_version!(args = ["--always", "--dirty=-dirty"], fallback = "unknown"),
28-
};
25+
pub const BUILD_VERSION: &str = env!("FISH_BUILD_VERSION");
2926

3027
#[macro_use]
3128
pub mod common;

0 commit comments

Comments
 (0)