mirror of
https://github.com/sharkdp/bat.git
synced 2025-02-20 20:08:58 +00:00
Include git hash in bat -V
and bat --version
output if present
I had to use a `lazy_static` due to that the clap API that only accepts a reference to a version string. And, in our code, only a 'static reference to a version string. Code could probably be refactored to accept a "normal" reference, but that would be a major undertaking.
This commit is contained in:
parent
dde770aa21
commit
4081ace4b9
@ -20,6 +20,7 @@
|
||||
|
||||
- Add PowerShell completion, see #1826 (@rashil2000)
|
||||
- Minimum supported Rust version (MSRV) bumped to 1.46
|
||||
- Include git hash in `bat -V` and `bat --version` output if present. See #1921 (@Enselic)
|
||||
|
||||
## Syntaxes
|
||||
|
||||
|
@ -2,6 +2,21 @@ use clap::{crate_name, crate_version, App as ClapApp, AppSettings, Arg, ArgGroup
|
||||
use std::env;
|
||||
use std::path::Path;
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
static ref VERSION: String = {
|
||||
#[cfg(feature = "bugreport")]
|
||||
let git_version = bugreport::git_version!(fallback = "");
|
||||
#[cfg(not(feature = "bugreport"))]
|
||||
let git_version = "";
|
||||
|
||||
if git_version.is_empty() {
|
||||
crate_version!().to_string()
|
||||
} else {
|
||||
format!("{} ({})", crate_version!(), git_version)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
|
||||
let clap_color_setting = if interactive_output && env::var_os("NO_COLOR").is_none() {
|
||||
AppSettings::ColoredHelp
|
||||
@ -10,7 +25,7 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
|
||||
};
|
||||
|
||||
let mut app = ClapApp::new(crate_name!())
|
||||
.version(crate_version!())
|
||||
.version(VERSION.as_str())
|
||||
.global_setting(clap_color_setting)
|
||||
.global_setting(AppSettings::DeriveDisplayOrder)
|
||||
.global_setting(AppSettings::UnifiedHelpMessage)
|
||||
|
Loading…
x
Reference in New Issue
Block a user