From 1b12b64dd303b6d7a204aab6982f100b29339f4c Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Fri, 22 Mar 2024 06:44:31 -0400 Subject: [PATCH] feat(build): Add extra version information Simple build-time code generation for now. Plan to add git info from the environment if it exists. Fixes #361 Signed-off-by: Brad P. Crochet --- Cargo.lock | 4 ++-- cli/Cargo.toml | 2 +- lib/Cargo.toml | 5 +++-- lib/build.rs | 22 ++++++++++++++++++++++ lib/src/cli.rs | 3 +++ 5 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 lib/build.rs diff --git a/Cargo.lock b/Cargo.lock index 33a3cd8ae..c89b1157e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "bootc" -version = "0.1.0" +version = "0.1.9" dependencies = [ "anyhow", "bootc-lib", @@ -184,7 +184,7 @@ dependencies = [ [[package]] name = "bootc-lib" -version = "0.1.0" +version = "0.1.9" dependencies = [ "anstream", "anstyle", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index e4ed44247..cabb69128 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bootc" -version = "0.1.0" +version = "0.1.9" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/cgwalters/bootc" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index af6633153..a19723b32 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -5,8 +5,9 @@ license = "MIT OR Apache-2.0" name = "bootc-lib" readme = "README.md" repository = "https://github.com/cgwalters/bootc" -version = "0.1.0" +version = "0.1.9" rust-version = "1.64.0" +build = "build.rs" include = ["/src", "LICENSE-APACHE", "LICENSE-MIT"] @@ -17,7 +18,7 @@ anyhow = "1.0" camino = { version = "1.1.6", features = ["serde1"] } ostree-ext = { version = "0.13.3" } chrono = { version = "0.4.35", features = ["serde"] } -clap = { version= "4.5", features = ["derive"] } +clap = { version= "4.5", features = ["derive","cargo"] } clap_mangen = { version = "0.2", optional = true } cap-std-ext = "4" hex = "^0.4.3" diff --git a/lib/build.rs b/lib/build.rs new file mode 100644 index 000000000..2f9ccaf3a --- /dev/null +++ b/lib/build.rs @@ -0,0 +1,22 @@ +// build.rs + +use std::env; +use std::fs; +use std::path::Path; + +fn main() { + let out_dir = env::var_os("OUT_DIR").unwrap(); + let dest_path = Path::new(&out_dir).join("version.rs"); + fs::write( + &dest_path, + " + #[allow(dead_code)] + #[allow(clippy::all)] + use clap::crate_version; + #[doc=r#\"Version string\"#] + pub const CLAP_LONG_VERSION: &str = crate_version!(); + ", + ) + .unwrap(); + println!("cargo:rerun-if-changed=build.rs"); +} diff --git a/lib/src/cli.rs b/lib/src/cli.rs index 85c1c7357..8d9bc28be 100644 --- a/lib/src/cli.rs +++ b/lib/src/cli.rs @@ -22,6 +22,8 @@ use crate::spec::Host; use crate::spec::ImageReference; use crate::utils::sigpolicy_from_opts; +include!(concat!(env!("OUT_DIR"), "/version.rs")); + /// Perform an upgrade operation #[derive(Debug, Parser)] pub(crate) struct UpgradeOpts { @@ -171,6 +173,7 @@ pub(crate) enum TestingOpts { #[derive(Debug, Parser)] #[clap(name = "bootc")] #[clap(rename_all = "kebab-case")] +#[clap(version,long_version=CLAP_LONG_VERSION)] #[allow(clippy::large_enum_variant)] pub(crate) enum Opt { /// Download and queue an updated container image to apply.