diff --git a/Cargo.lock b/Cargo.lock index 7042439f4..ccd83667a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -662,6 +662,7 @@ dependencies = [ "base", "clap 4.3.21", "deno_core", + "dotenv-build", "env_logger 0.10.0", "log", "sb_graph", @@ -1445,6 +1446,12 @@ dependencies = [ "syn 2.0.28", ] +[[package]] +name = "dotenv-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4547f16c17f6051a12cdb8c62b803f94bee6807c74aa7c530b30b737df981fc" + [[package]] name = "dprint-swc-ext" version = "0.12.0" diff --git a/crates/cli/.env.build b/crates/cli/.env.build new file mode 100644 index 000000000..050b11d8c --- /dev/null +++ b/crates/cli/.env.build @@ -0,0 +1 @@ +DENO_VERSION="1.37.2" \ No newline at end of file diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index ddc31a48e..4155f95a1 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -11,8 +11,11 @@ path = "src/main.rs" anyhow = { workspace = true } base = { path = "../base" } deno_core = { workspace = true } -clap = { version = "4.0.29", features = ["cargo"] } +clap = { version = "4.0.29", features = ["cargo", "string"] } env_logger = "0.10.0" log = { workspace = true } sb_graph = { path = "../sb_graph" } tokio.workspace = true + +[build-dependencies] +dotenv-build = { version = "0.1.1" } \ No newline at end of file diff --git a/crates/cli/build.rs b/crates/cli/build.rs new file mode 100644 index 000000000..1801c9643 --- /dev/null +++ b/crates/cli/build.rs @@ -0,0 +1,13 @@ +use std::{env, path::Path}; + +fn main() { + println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap()); + println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap()); + + dotenv_build::output(dotenv_build::Config { + filename: Path::new(".env.build"), + recursive_search: false, + fail_if_missing_dotenv: true, + }) + .unwrap(); +} diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 606e6c17d..371b8d329 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -17,7 +17,13 @@ use std::sync::Arc; fn cli() -> Command { Command::new("edge-runtime") .about("A server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services") - .version(crate_version!()) + .version(format!( + "{}\ndeno {} ({}, {})", + crate_version!(), + env!("DENO_VERSION"), + env!("PROFILE"), + env!("TARGET") + )) .arg_required_else_help(true) .arg( arg!(-v --verbose "Use verbose output")