From 92f016bb82384ae3f3f2bc127ca05e5f2fcb9f1d Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Wed, 16 Apr 2025 17:35:00 +0200 Subject: [PATCH] Get application version from git --- Cargo.lock | 23 ++++++++++++++++++++++- Cargo.toml | 2 +- src/ssh/handler.rs | 3 ++- src/ssh/renderer.rs | 8 ++------ 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd8ec10..0d5b8a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1057,6 +1057,26 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "git-version" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" +dependencies = [ + "git-version-macro", +] + +[[package]] +name = "git-version-macro" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "group" version = "0.13.0" @@ -3281,7 +3301,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tunnel_rs" -version = "0.1.0" +version = "0.0.0" dependencies = [ "bytes", "clap", @@ -3290,6 +3310,7 @@ dependencies = [ "crossterm 0.29.0", "dotenvy", "futures", + "git-version", "http-body-util", "hyper", "hyper-util", diff --git a/Cargo.toml b/Cargo.toml index b26b138..24e0c69 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,5 @@ [package] name = "tunnel_rs" -version = "0.1.0" edition = "2024" default-run = "tunnel_rs" @@ -12,6 +11,7 @@ color-eyre = "0.6.3" crossterm = "0.29.0" dotenvy = "0.15.7" futures = "0.3.31" +git-version = "0.3.9" http-body-util = { version = "0.1.3", features = ["full"] } hyper = { version = "1.6.0", features = ["full"] } hyper-util = { version = "0.1.11", features = ["full"] } diff --git a/src/ssh/handler.rs b/src/ssh/handler.rs index 26f62cd..e6cc6f8 100644 --- a/src/ssh/handler.rs +++ b/src/ssh/handler.rs @@ -3,6 +3,7 @@ use std::io::Write; use std::iter::once; use clap::Parser; +use git_version::git_version; use ratatui::layout::Rect; use ratatui::prelude::CrosstermBackend; use ratatui::{Terminal, TerminalOptions, Viewport}; @@ -17,7 +18,7 @@ use crate::tunnel::{Registry, Tunnel, TunnelAccess}; /// Quickly create http tunnels for development #[derive(Parser, Debug)] -#[command(version, about, long_about = None)] +#[command(version = git_version!(), about, long_about = None)] pub struct Args { /// Make all tunnels public by default instead of private #[arg(long, group = "access")] diff --git a/src/ssh/renderer.rs b/src/ssh/renderer.rs index 20f73c2..3018347 100644 --- a/src/ssh/renderer.rs +++ b/src/ssh/renderer.rs @@ -1,6 +1,7 @@ use std::cmp::{self, max}; use futures::StreamExt; +use git_version::git_version; use ratatui::Frame; use ratatui::layout::{Constraint, Flex, Layout, Position, Rect}; use ratatui::style::{Style, Stylize as _}; @@ -131,12 +132,7 @@ impl Renderer { } pub fn render_title(&self, frame: &mut Frame, rect: Rect) { - let title = format!( - "{} ({})", - std::env!("CARGO_PKG_NAME"), - std::env!("CARGO_PKG_VERSION") - ) - .bold(); + let title = format!("{} ({})", std::env!("CARGO_PKG_NAME"), git_version!()).bold(); let title = Line::from(title).centered(); frame.render_widget(title, rect); }