From ebecbc67341934c705156a243e471e1c74d5efc6 Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Mon, 30 Jan 2023 16:34:25 +0100 Subject: [PATCH] add proper version string --- Cargo.lock | 2 +- Cargo.toml | 2 +- build.rs | 10 ++++++++++ src/args.rs | 3 ++- src/core.rs | 12 +++++++++++- 5 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 build.rs diff --git a/Cargo.lock b/Cargo.lock index bea62f7..0a55aa6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,7 +182,7 @@ checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "pacdef" -version = "0.1.0" +version = "1.0.0-alpha1" dependencies = [ "alpm", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 0a97cb2..86c7d84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pacdef" -version = "0.1.0" +version = "1.0.0-alpha1" edition = "2021" [dependencies] diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..33069fc --- /dev/null +++ b/build.rs @@ -0,0 +1,10 @@ +use std::process::Command; + +fn main() { + let output = Command::new("git") + .args(["rev-parse", "--short", "HEAD"]) + .output() + .unwrap(); + let git_hash = String::from_utf8(output.stdout).unwrap(); + println!("cargo:rustc-env=GIT_HASH={git_hash}"); +} diff --git a/src/args.rs b/src/args.rs index 1895a4d..ea7e052 100644 --- a/src/args.rs +++ b/src/args.rs @@ -4,11 +4,12 @@ use clap::{Arg, ArgMatches, Command}; use path_absolutize::Absolutize; use crate::action::*; +use crate::core::get_version_string; fn get_arg_parser() -> Command { Command::new("pacdef") .about("declarative package manager for Arch Linux") - .version("1.0.0-alpha") + .version(get_version_string()) .subcommand_required(true) .arg_required_else_help(true) .subcommand(Command::new(CLEAN).about("remove unmanaged packages")) diff --git a/src/core.rs b/src/core.rs index 6471423..3a6dc4e 100644 --- a/src/core.rs +++ b/src/core.rs @@ -136,7 +136,7 @@ impl Pacdef { } fn show_version(self) { - println!("pacdef, version: {}", env!("CARGO_PKG_VERSION")); + println!("{}", get_version_string()); } fn show_unmanaged_packages(mut self) { @@ -289,3 +289,13 @@ fn show_error(error: anyhow::Error, backend: Box) { None => println!("WARNING: skipping backend '{section}': {error}"), } } + +pub(crate) const fn get_version_string() -> &'static str { + concat!( + "pacdef, version: ", + env!("CARGO_PKG_VERSION"), + " (", + env!("GIT_HASH"), + ")", + ) +}