1use reth_ethereum::node::core::version::RethCliVersionConsts;
2use reth_node_core::version::try_init_version_metadata;
3use std::{borrow::Cow, env};
4
5pub fn init_version_metadata() {
9 try_init_version_metadata(version_metadata())
10 .expect("Version metadata should be generated in `build.rs`");
11}
12
13pub fn version_metadata() -> RethCliVersionConsts {
15 RethCliVersionConsts {
16 name_client: Cow::Borrowed("Tempo"),
17 cargo_pkg_version: Cow::Borrowed(env!("CARGO_PKG_VERSION")),
18 vergen_git_sha_long: Cow::Borrowed(env!("VERGEN_GIT_SHA")),
19 vergen_git_sha: Cow::Borrowed(env!("VERGEN_GIT_SHA_SHORT")),
20 vergen_build_timestamp: Cow::Borrowed(env!("VERGEN_BUILD_TIMESTAMP")),
21 vergen_cargo_target_triple: Cow::Borrowed(env!("VERGEN_CARGO_TARGET_TRIPLE")),
22 vergen_cargo_features: Cow::Borrowed(env!("VERGEN_CARGO_FEATURES")),
23 short_version: Cow::Borrowed(env!("RETH_SHORT_VERSION")),
24 long_version: Cow::Owned(format!(
25 "{}\n{}\n{}\n{}\n{}",
26 env!("RETH_LONG_VERSION_0"),
27 env!("RETH_LONG_VERSION_1"),
28 env!("RETH_LONG_VERSION_2"),
29 env!("RETH_LONG_VERSION_3"),
30 env!("RETH_LONG_VERSION_4"),
31 )),
32
33 build_profile_name: Cow::Borrowed(env!("RETH_BUILD_PROFILE")),
34 p2p_client_version: Cow::Borrowed(env!("RETH_P2P_CLIENT_VERSION")),
35 extra_data: Cow::Owned(extra_data()),
36 }
37}
38
39fn extra_data() -> String {
40 format!("tempo/v{}/{}", env!("CARGO_PKG_VERSION"), env::consts::OS)
41}