tempo_node/
version.rs

1use reth_ethereum::node::core::version::RethCliVersionConsts;
2use reth_node_core::version::try_init_version_metadata;
3use std::{borrow::Cow, env};
4
5/// Sets version information for Tempo globally.
6///
7/// The version information is read by the CLI.
8pub fn init_version_metadata() {
9    try_init_version_metadata(version_metadata())
10        .expect("Version metadata should be generated in `build.rs`");
11}
12
13/// The version information for Tempo.
14pub 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}