diff options
author | ecyrbe <ecyrbe@gmail.com> | 2020-02-23 00:46:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-22 18:46:52 -0500 |
commit | fb98556d56d0defa325fab1296077627cce31aab (patch) | |
tree | c5589b7cdc21d56d440ab13a1abc527cf072b103 /cli/ops/os.rs | |
parent | c34d96d86557d434bdf124063e4eec4662067c1e (diff) |
feat(std/node): add os.loadavg() (#4075)
Diffstat (limited to 'cli/ops/os.rs')
-rw-r--r-- | cli/ops/os.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cli/ops/os.rs b/cli/ops/os.rs index 8def5ac1e..d1786a6db 100644 --- a/cli/ops/os.rs +++ b/cli/ops/os.rs @@ -19,6 +19,7 @@ pub fn init(i: &mut Isolate, s: &State) { i.register_op("get_env", s.core_op(json_op(s.stateful_op(op_get_env)))); i.register_op("get_dir", s.core_op(json_op(s.stateful_op(op_get_dir)))); i.register_op("hostname", s.core_op(json_op(s.stateful_op(op_hostname)))); + i.register_op("loadavg", s.core_op(json_op(s.stateful_op(op_loadavg)))); } #[derive(Deserialize)] @@ -158,6 +159,22 @@ fn op_is_tty( }))) } +fn op_loadavg( + state: &State, + _args: Value, + _zero_copy: Option<ZeroCopyBuf>, +) -> Result<JsonOp, ErrBox> { + state.check_env()?; + match sys_info::loadavg() { + Ok(loadavg) => Ok(JsonOp::Sync(json!([ + loadavg.one, + loadavg.five, + loadavg.fifteen + ]))), + Err(_) => Ok(JsonOp::Sync(json!([0f64, 0f64, 0f64]))), + } +} + fn op_hostname( state: &State, _args: Value, |