diff options
author | Yoshiya Hinosawa <stibium121@gmail.com> | 2020-11-03 02:40:33 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-02 12:40:33 -0500 |
commit | 0e5c8c03ac9290e752d15c23e107bfbd97d03c72 (patch) | |
tree | 0c039f911ed7166f50d1ae1943c24fffe40f0ba2 /cli | |
parent | e3b096f6f69b4f4d8a4a57fc5da68c53c1cdc7ea (diff) |
add commit hash and target to long_version output (#8133)
Diffstat (limited to 'cli')
-rw-r--r-- | cli/build.rs | 29 | ||||
-rw-r--r-- | cli/flags.rs | 5 | ||||
-rw-r--r-- | cli/version.rs | 1 |
3 files changed, 30 insertions, 5 deletions
diff --git a/cli/build.rs b/cli/build.rs index 6435f0225..4819988e9 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -104,6 +104,28 @@ fn ts_version() -> String { .collect::<String>() } +fn git_commit_hash() -> String { + if let Ok(output) = std::process::Command::new("git") + .arg("rev-list") + .arg("-1") + .arg("HEAD") + .output() + { + if output.status.success() { + std::str::from_utf8(&output.stdout[..7]) + .unwrap() + .to_string() + } else { + // When not in git repository + // (e.g. when the user install by `cargo install deno`) + "UNKNOWN".to_string() + } + } else { + // When there is no git command for some reason + "UNKNOWN".to_string() + } +} + fn main() { // Don't build V8 if "cargo doc" is being run. This is to support docs.rs. if env::var_os("RUSTDOCFLAGS").is_some() { @@ -114,6 +136,7 @@ fn main() { // op_fetch_asset::trace_serializer(); println!("cargo:rustc-env=TS_VERSION={}", ts_version()); + println!("cargo:rustc-env=GIT_COMMIT_HASH={}", git_commit_hash()); println!( "cargo:rustc-env=DENO_WEB_LIB_PATH={}", deno_web::get_declaration().display() @@ -123,10 +146,8 @@ fn main() { deno_fetch::get_declaration().display() ); - println!( - "cargo:rustc-env=TARGET={}", - std::env::var("TARGET").unwrap() - ); + println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap()); + println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap()); let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); let o = PathBuf::from(env::var_os("OUT_DIR").unwrap()); diff --git a/cli/flags.rs b/cli/flags.rs index de98ee96c..42f8d60d7 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -221,8 +221,11 @@ To evaluate code in the shell: lazy_static! { static ref LONG_VERSION: String = format!( - "{}\nv8 {}\ntypescript {}", + "{} ({}, {}, {})\nv8 {}\ntypescript {}", crate::version::DENO, + crate::version::GIT_COMMIT_HASH, + env!("PROFILE"), + env!("TARGET"), crate::version::v8(), crate::version::TYPESCRIPT ); diff --git a/cli/version.rs b/cli/version.rs index 6967d7435..0f2a69a5c 100644 --- a/cli/version.rs +++ b/cli/version.rs @@ -1,6 +1,7 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. pub const DENO: &str = env!("CARGO_PKG_VERSION"); +pub const GIT_COMMIT_HASH: &str = env!("GIT_COMMIT_HASH"); pub const TYPESCRIPT: &str = crate::js::TS_VERSION; pub fn v8() -> &'static str { |