From d95e85cc4bb67cb612e4dcbde9f18bcd1c0fc778 Mon Sep 17 00:00:00 2001 From: Noor Date: Fri, 11 Apr 2025 15:29:57 +0530 Subject: [PATCH] detailed clap version add shadow-rs for build metadata git commit hash, build time, branch etc, in version --- Cargo.lock | 151 +++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 + build.rs | 5 ++ src/bin/detee-cli.rs | 4 +- src/bin/super-detee-cli.rs | 4 +- 5 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 build.rs diff --git a/Cargo.lock b/Cargo.lock index a13f5d3..a290c09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -712,6 +712,38 @@ dependencies = [ "serde", ] +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.24", + "serde", + "serde_json", + "thiserror 2.0.11", +] + [[package]] name = "cc" version = "1.2.11" @@ -833,6 +865,26 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1062,6 +1114,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", + "shadow-rs", "tabled", "thiserror 2.0.11", "tokio", @@ -1521,6 +1574,19 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "git2" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", +] + [[package]] name = "glob" version = "0.3.2" @@ -1961,6 +2027,12 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "is_debug" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe266d2e243c931d8190177f20bf7f24eed45e96f39e87dc49a27b32d12d407" + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -2069,6 +2141,18 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +[[package]] +name = "libgit2-sys" +version = "0.18.1+1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.8.6" @@ -2085,6 +2169,18 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" +[[package]] +name = "libz-sys" +version = "1.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -2215,6 +2311,15 @@ dependencies = [ "libm", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "object" version = "0.36.7" @@ -3039,6 +3144,9 @@ name = "semver" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +dependencies = [ + "serde", +] [[package]] name = "semver-parser" @@ -3149,6 +3257,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "shadow-rs" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d5625ed609cf66d7e505e7d487aca815626dc4ebb6c0dd07637ca61a44651a6" +dependencies = [ + "cargo_metadata", + "const_format", + "git2", + "is_debug", + "serde_json", + "time", + "tzdb", +] + [[package]] name = "shlex" version = "1.3.0" @@ -3408,7 +3531,9 @@ checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", + "libc", "num-conv", + "num_threads", "powerfmt", "serde", "time-core", @@ -3707,6 +3832,32 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "tz-rs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1450bf2b99397e72070e7935c89facaa80092ac812502200375f1f7d33c71a1" + +[[package]] +name = "tzdb" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0be2ea5956f295449f47c0b825c5e109022ff1a6a53bb4f77682a87c2341fbf5" +dependencies = [ + "iana-time-zone", + "tz-rs", + "tzdb_data", +] + +[[package]] +name = "tzdb_data" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0604b35c1f390a774fdb138cac75a99981078895d24bcab175987440bbff803b" +dependencies = [ + "tz-rs", +] + [[package]] name = "ucd-trie" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index 5fe3ceb..2641048 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,9 +33,11 @@ hyper-rustls = { version = "0.27.5", features = ["http2"] } openssl = { version = "0.10.71", features = ["vendored"] } tokio-retry = "0.3.0" detee-sgx = { git = "ssh://git@gitea.detee.cloud/testnet/detee-sgx.git", branch = "hratls", features=["hratls", "qvl"] } +shadow-rs = { version = "1.1.1", features = ["metadata"] } detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "main" } # detee-shared = { path = "../detee-shared" } [build-dependencies] +shadow-rs = "1.1.1" tonic-build = "0.12" diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..429f0a7 --- /dev/null +++ b/build.rs @@ -0,0 +1,5 @@ +use shadow_rs::ShadowBuilder; + +fn main() { + ShadowBuilder::builder().deny_const(Default::default()).build().unwrap(); +} diff --git a/src/bin/detee-cli.rs b/src/bin/detee-cli.rs index ae625d9..7d80f61 100644 --- a/src/bin/detee-cli.rs +++ b/src/bin/detee-cli.rs @@ -12,6 +12,8 @@ More information can be found at https://detee.ltd Feel free to browser applications bundles or VM disks available for immediate deployment."#; +shadow_rs::shadow!(build); + fn main() { // TODO: figure if there is a more elegant way to solve this than calling default_provider in main let _ = rustls::crypto::aws_lc_rs::default_provider().install_default(); @@ -50,7 +52,7 @@ fn main() { fn clap_cmd() -> Command { Command::new("detee-cli") - .version("0.0.1") + .version(build::CLAP_LONG_VERSION) .author("https://detee.ltd") .about(ABOUT) .arg( diff --git a/src/bin/super-detee-cli.rs b/src/bin/super-detee-cli.rs index 9a9cdb3..ec04b3d 100644 --- a/src/bin/super-detee-cli.rs +++ b/src/bin/super-detee-cli.rs @@ -13,6 +13,8 @@ It allows you to: The admin pubkeys are hardcoded in the brain."#; +shadow_rs::shadow!(build); + fn main() { let _ = rustls::crypto::aws_lc_rs::default_provider().install_default(); let log_level = match std::env::var("LOG_LEVEL") { @@ -26,7 +28,7 @@ fn main() { env_logger::builder().filter_level(log_level).format_timestamp(None).init(); let cmd = Command::new("super-detee-cli") - .version("0.0.1") + .version(build::CLAP_LONG_VERSION) .author("https://detee.ltd") .about(ABOUT) .subcommand(