summaryrefslogtreecommitdiff
path: root/cli/ops/os.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops/os.rs')
-rw-r--r--cli/ops/os.rs17
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,