Explorar o código

fix: vergen without git repo

Yujia Qiao %!s(int64=4) %!d(string=hai) anos
pai
achega
d396cdd0b8
Modificáronse 1 ficheiros con 25 adicións e 16 borrados
  1. 25 16
      src/cli.rs

+ 25 - 16
src/cli.rs

@@ -1,4 +1,5 @@
 use clap::{AppSettings, ArgGroup, Parser};
+use lazy_static::lazy_static;
 
 #[derive(clap::ArgEnum, Clone, Debug, Copy)]
 pub enum KeypairType {
@@ -6,32 +7,40 @@ pub enum KeypairType {
     X448,
 }
 
-const LONG_VERSION: &str = const_format::formatcp!(
-    "
+lazy_static! {
+    static ref VERSION: &'static str = {
+        match option_env!("VERGEN_GIT_SEMVER_LIGHTWEIGHT") {
+            Some(v) => v,
+            None => env!("VERGEN_BUILD_SEMVER"),
+        }
+    };
+    static ref LONG_VERSION: String = format!(
+        "
 Build Timestamp:     {}
 Build Version:       {}
-Commit SHA:          {}
-Commit Date:         {}
-Commit Branch:       {}
+Commit SHA:          {:?}
+Commit Date:         {:?}
+Commit Branch:       {:?}
 cargo Target Triple: {}
 cargo Profile:       {}
 cargo Features:      {}
 ",
-    env!("VERGEN_BUILD_TIMESTAMP"),
-    env!("VERGEN_BUILD_SEMVER"),
-    env!("VERGEN_GIT_SHA"),
-    env!("VERGEN_GIT_COMMIT_TIMESTAMP"),
-    env!("VERGEN_GIT_BRANCH"),
-    env!("VERGEN_CARGO_TARGET_TRIPLE"),
-    env!("VERGEN_CARGO_PROFILE"),
-    env!("VERGEN_CARGO_FEATURES")
-);
+        env!("VERGEN_BUILD_TIMESTAMP"),
+        env!("VERGEN_BUILD_SEMVER"),
+        option_env!("VERGEN_GIT_SHA"),
+        option_env!("VERGEN_GIT_COMMIT_TIMESTAMP"),
+        option_env!("VERGEN_GIT_BRANCH"),
+        env!("VERGEN_CARGO_TARGET_TRIPLE"),
+        env!("VERGEN_CARGO_PROFILE"),
+        env!("VERGEN_CARGO_FEATURES")
+    );
+}
 
 #[derive(Parser, Debug, Default, Clone)]
 #[clap(
     about,
-    version(env!("VERGEN_GIT_SEMVER_LIGHTWEIGHT")),
-    long_version(LONG_VERSION),
+    version(*VERSION),
+    long_version(LONG_VERSION.as_str()),
     setting(AppSettings::DeriveDisplayOrder)
 )]
 #[clap(group(