From 6efca6d1a17638136eadf39644f392f9107a4a6c Mon Sep 17 00:00:00 2001 From: "Kevin (Kun) \"Kassimo\" Qian" Date: Fri, 27 Sep 2019 16:09:42 -0700 Subject: Add Deno.hostname() (#3032) --- cli/ops/mod.rs | 4 ++++ cli/ops/os.rs | 11 +++++++++++ 2 files changed, 15 insertions(+) (limited to 'cli/ops') diff --git a/cli/ops/mod.rs b/cli/ops/mod.rs index ea71fee9f..ab318438f 100644 --- a/cli/ops/mod.rs +++ b/cli/ops/mod.rs @@ -83,6 +83,7 @@ pub const OP_MAKE_TEMP_DIR: OpId = 55; pub const OP_CWD: OpId = 56; pub const OP_FETCH_ASSET: OpId = 57; pub const OP_DIAL_TLS: OpId = 58; +pub const OP_HOSTNAME: OpId = 59; pub fn dispatch( state: &ThreadSafeState, @@ -305,6 +306,9 @@ pub fn dispatch( OP_DIAL_TLS => { dispatch_json::dispatch(tls::op_dial_tls, state, control, zero_copy) } + OP_HOSTNAME => { + dispatch_json::dispatch(os::op_hostname, state, control, zero_copy) + } _ => panic!("bad op_id"), }; diff --git a/cli/ops/os.rs b/cli/ops/os.rs index d033dc9c3..770af404c 100644 --- a/cli/ops/os.rs +++ b/cli/ops/os.rs @@ -9,6 +9,7 @@ use deno::*; use log; use std::collections::HashMap; use std::env; +use sys_info; use url::Url; /// BUILD_OS and BUILD_ARCH match the values in Deno.build. See js/build.ts. @@ -126,3 +127,13 @@ pub fn op_is_tty( "stderr": atty::is(atty::Stream::Stderr), }))) } + +pub fn op_hostname( + state: &ThreadSafeState, + _args: Value, + _zero_copy: Option, +) -> Result { + state.check_env()?; + let hostname = sys_info::hostname().unwrap_or_else(|_| "".to_owned()); + Ok(JsonOp::Sync(json!(hostname))) +} -- cgit v1.2.3