Skip to content

Commit e2e83ac

Browse files
committed
feat: display git sha and is dirty in oma --version
1 parent e8eb6d2 commit e2e83ac

File tree

4 files changed

+159
-0
lines changed

4 files changed

+159
-0
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ rust-embed = "8.5.0"
7575
unic-langid = "0.9.5"
7676
sys-locale = "0.3"
7777

78+
[build-dependencies]
79+
vergen-git2 = "1.0.7"
80+
vergen = "9.0.1"
81+
7882
[features]
7983
aosc = ["dep:oma-topics", "oma-refresh/aosc", "oma-pm/aosc", "oma-contents/aosc", "dep:oma-mirror", "reqwest/blocking", "dep:oma-tum"]
8084
mirror = []

build.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
use std::error::Error;
2+
3+
use vergen::Emitter;
4+
use vergen_git2::Git2Builder;
5+
6+
fn main() -> Result<(), Box<dyn Error>> {
7+
let git = Git2Builder::default()
8+
.sha(true)
9+
.dirty(true)
10+
.describe(true, false, None)
11+
.build()?;
12+
13+
Emitter::default().add_instructions(&git)?.emit()?;
14+
15+
Ok(())
16+
}

src/args.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ pub fn dangerous_color(msg: impl Display) -> String {
7474
#[derive(Parser, Debug)]
7575
#[command(
7676
version,
77+
long_version = long_version(),
7778
about = fl!("clap-about"),
7879
long_about = None,
7980
disable_version_flag = true,
@@ -234,6 +235,25 @@ pub enum SubCmd {
234235
Why(Why),
235236
}
236237

238+
fn long_version() -> String {
239+
let mut ver = String::from(crate_version!());
240+
241+
if env!("VERGEN_GIT_DESCRIBE")
242+
.strip_prefix('v')
243+
.is_none_or(|describe_suffix| describe_suffix != ver)
244+
{
245+
ver.push('-');
246+
ver.push_str(env!("VERGEN_GIT_SHA"));
247+
}
248+
249+
if env!("VERGEN_GIT_DIRTY") == "true" {
250+
ver.push('-');
251+
ver.push_str("dirty");
252+
}
253+
254+
ver
255+
}
256+
237257
#[derive(Debug, Args)]
238258
pub struct Version;
239259

0 commit comments

Comments
 (0)