summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorYoshiya Hinosawa <stibium121@gmail.com>2020-11-03 02:40:33 +0900
committerGitHub <noreply@github.com>2020-11-02 12:40:33 -0500
commit0e5c8c03ac9290e752d15c23e107bfbd97d03c72 (patch)
tree0c039f911ed7166f50d1ae1943c24fffe40f0ba2 /cli
parente3b096f6f69b4f4d8a4a57fc5da68c53c1cdc7ea (diff)
add commit hash and target to long_version output (#8133)
Diffstat (limited to 'cli')
-rw-r--r--cli/build.rs29
-rw-r--r--cli/flags.rs5
-rw-r--r--cli/version.rs1
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 {