diff options
-rw-r--r-- | js/main.ts | 9 | ||||
-rw-r--r-- | src/flags.rs | 6 | ||||
-rw-r--r-- | src/msg.fbs | 3 | ||||
-rw-r--r-- | src/ops.rs | 10 | ||||
-rw-r--r-- | src/version.rs | 7 |
5 files changed, 25 insertions, 10 deletions
diff --git a/js/main.ts b/js/main.ts index 0d33cf063..70819a576 100644 --- a/js/main.ts +++ b/js/main.ts @@ -8,6 +8,7 @@ import { libdeno } from "./libdeno"; import { args } from "./deno"; import { sendSync, handleAsyncMsgFromRust } from "./dispatch"; import { promiseErrorExaminer, promiseRejectHandler } from "./promise_util"; +import { version } from "typescript"; function sendStart(): msg.StartRes { const builder = new flatbuffers.Builder(); @@ -59,6 +60,14 @@ export default function denoMain() { os.exit(0); } + // handle `--version` + if (startResMsg.versionFlag()) { + console.log("deno:", startResMsg.denoVersion()); + console.log("v8:", startResMsg.v8Version()); + console.log("typescript:", version); + os.exit(0); + } + const cwd = startResMsg.cwd(); log("cwd", cwd); diff --git a/src/flags.rs b/src/flags.rs index 0959248e1..aba4f8f14 100644 --- a/src/flags.rs +++ b/src/flags.rs @@ -7,7 +7,6 @@ use std::ffi::CString; use std::mem; use std::process::exit; use std::vec::Vec; -use version; // Creates vector of strings, Vec<String> #[cfg(test)] @@ -35,11 +34,6 @@ pub fn process(flags: &DenoFlags) { exit(0); } - if flags.version { - version::print_version(); - exit(0); - } - let mut log_level = log::LevelFilter::Info; if flags.log_debug { log_level = log::LevelFilter::Debug; diff --git a/src/msg.fbs b/src/msg.fbs index 5b60213ad..9aa9b069c 100644 --- a/src/msg.fbs +++ b/src/msg.fbs @@ -121,6 +121,9 @@ table StartRes { deps_flag: bool; recompile_flag: bool; types_flag: bool; + version_flag: bool; + deno_version: string; + v8_version: string; } table CodeFetch { diff --git a/src/ops.rs b/src/ops.rs index 261ed67f5..f86e46da7 100644 --- a/src/ops.rs +++ b/src/ops.rs @@ -12,6 +12,7 @@ use msg; use resources; use resources::Resource; use tokio_util; +use version; use flatbuffers::FlatBufferBuilder; use futures; @@ -178,6 +179,12 @@ fn op_start( let cwd_off = builder.create_string(deno_fs::normalize_path(cwd_path.as_ref()).as_ref()); + let v8_version = version::get_v8_version(); + let v8_version_off = builder.create_string(v8_version); + + let deno_version = version::DENO_VERSION; + let deno_version_off = builder.create_string(deno_version); + let inner = msg::StartRes::create( &mut builder, &msg::StartResArgs { @@ -186,6 +193,9 @@ fn op_start( debug_flag: state.flags.log_debug, recompile_flag: state.flags.recompile, types_flag: state.flags.types_flag, + version_flag: state.flags.version, + v8_version: Some(v8_version_off), + deno_version: Some(deno_version_off), ..Default::default() }, ); diff --git a/src/version.rs b/src/version.rs index bfd47012c..475ab319e 100644 --- a/src/version.rs +++ b/src/version.rs @@ -3,12 +3,11 @@ use libdeno; use std::ffi::CStr; // This is the source of truth for the Deno version. Ignore the value in Cargo.toml. -const DENO_VERSION: &str = "0.1.8"; +pub const DENO_VERSION: &str = "0.1.8"; -pub fn print_version() { +pub fn get_v8_version() -> &'static str { let v = unsafe { libdeno::deno_v8_version() }; let c_str = unsafe { CStr::from_ptr(v) }; let version = c_str.to_str().unwrap(); - println!("deno: {}", DENO_VERSION); - println!("v8: {}", version); + version } |