diff options
Diffstat (limited to 'cli/ops')
-rw-r--r-- | cli/ops/mod.rs | 4 | ||||
-rw-r--r-- | cli/ops/os.rs | 11 |
2 files changed, 15 insertions, 0 deletions
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<PinnedBuf>, +) -> Result<JsonOp, ErrBox> { + state.check_env()?; + let hostname = sys_info::hostname().unwrap_or_else(|_| "".to_owned()); + Ok(JsonOp::Sync(json!(hostname))) +} |