deno -v should report typescript version

Fixes #993
This commit is contained in:
Jinho Bang 2018-10-16 09:52:33 +09:00 committed by Ryan Dahl
parent fb90c6f525
commit 1322f3de9f
5 changed files with 25 additions and 10 deletions

View file

@ -8,6 +8,7 @@ import { libdeno } from "./libdeno";
import { args } from "./deno"; import { args } from "./deno";
import { sendSync, handleAsyncMsgFromRust } from "./dispatch"; import { sendSync, handleAsyncMsgFromRust } from "./dispatch";
import { promiseErrorExaminer, promiseRejectHandler } from "./promise_util"; import { promiseErrorExaminer, promiseRejectHandler } from "./promise_util";
import { version } from "typescript";
function sendStart(): msg.StartRes { function sendStart(): msg.StartRes {
const builder = new flatbuffers.Builder(); const builder = new flatbuffers.Builder();
@ -59,6 +60,14 @@ export default function denoMain() {
os.exit(0); 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(); const cwd = startResMsg.cwd();
log("cwd", cwd); log("cwd", cwd);

View file

@ -7,7 +7,6 @@ use std::ffi::CString;
use std::mem; use std::mem;
use std::process::exit; use std::process::exit;
use std::vec::Vec; use std::vec::Vec;
use version;
// Creates vector of strings, Vec<String> // Creates vector of strings, Vec<String>
#[cfg(test)] #[cfg(test)]
@ -35,11 +34,6 @@ pub fn process(flags: &DenoFlags) {
exit(0); exit(0);
} }
if flags.version {
version::print_version();
exit(0);
}
let mut log_level = log::LevelFilter::Info; let mut log_level = log::LevelFilter::Info;
if flags.log_debug { if flags.log_debug {
log_level = log::LevelFilter::Debug; log_level = log::LevelFilter::Debug;

View file

@ -121,6 +121,9 @@ table StartRes {
deps_flag: bool; deps_flag: bool;
recompile_flag: bool; recompile_flag: bool;
types_flag: bool; types_flag: bool;
version_flag: bool;
deno_version: string;
v8_version: string;
} }
table CodeFetch { table CodeFetch {

View file

@ -12,6 +12,7 @@ use msg;
use resources; use resources;
use resources::Resource; use resources::Resource;
use tokio_util; use tokio_util;
use version;
use flatbuffers::FlatBufferBuilder; use flatbuffers::FlatBufferBuilder;
use futures; use futures;
@ -178,6 +179,12 @@ fn op_start(
let cwd_off = let cwd_off =
builder.create_string(deno_fs::normalize_path(cwd_path.as_ref()).as_ref()); 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( let inner = msg::StartRes::create(
&mut builder, &mut builder,
&msg::StartResArgs { &msg::StartResArgs {
@ -186,6 +193,9 @@ fn op_start(
debug_flag: state.flags.log_debug, debug_flag: state.flags.log_debug,
recompile_flag: state.flags.recompile, recompile_flag: state.flags.recompile,
types_flag: state.flags.types_flag, 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() ..Default::default()
}, },
); );

View file

@ -3,12 +3,11 @@ use libdeno;
use std::ffi::CStr; use std::ffi::CStr;
// This is the source of truth for the Deno version. Ignore the value in Cargo.toml. // 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 v = unsafe { libdeno::deno_v8_version() };
let c_str = unsafe { CStr::from_ptr(v) }; let c_str = unsafe { CStr::from_ptr(v) };
let version = c_str.to_str().unwrap(); let version = c_str.to_str().unwrap();
println!("deno: {}", DENO_VERSION); version
println!("v8: {}", version);
} }