diff options
author | Akshat Agarwal <humancalico@disroot.org> | 2020-09-10 14:08:17 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-10 10:38:17 +0200 |
commit | c1b4ff61c9113166705526022452ed2fb00bc7d5 (patch) | |
tree | cb13bf71b73566312c5767789c0e19ade6713a08 /cli/ops/os.rs | |
parent | dfd8794da463dd4d0649c41537b5475eaac10447 (diff) |
feat(unstable): Add Deno.systemMemoryInfo() (#7350)
Co-authored-by: marcopacini <pacinim88@gmail.com>
Co-authored-by: Casper Beyer <caspervonb@pm.me>
Diffstat (limited to 'cli/ops/os.rs')
-rw-r--r-- | cli/ops/os.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cli/ops/os.rs b/cli/ops/os.rs index 4778d49a4..a38b5b08a 100644 --- a/cli/ops/os.rs +++ b/cli/ops/os.rs @@ -21,6 +21,7 @@ pub fn init(s: &Rc<State>) { s.register_op_json_sync("op_hostname", op_hostname); s.register_op_json_sync("op_loadavg", op_loadavg); s.register_op_json_sync("op_os_release", op_os_release); + s.register_op_json_sync("op_system_memory_info", op_system_memory_info); } fn op_exec_path( @@ -147,3 +148,24 @@ fn op_os_release( let release = sys_info::os_release().unwrap_or_else(|_| "".to_string()); Ok(json!(release)) } + +fn op_system_memory_info( + state: &State, + _args: Value, + _zero_copy: &mut [ZeroCopyBuf], +) -> Result<Value, ErrBox> { + state.check_unstable("Deno.systemMemoryInfo"); + state.check_env()?; + match sys_info::mem_info() { + Ok(info) => Ok(json!({ + "total": info.total, + "free": info.free, + "available": info.avail, + "buffers": info.buffers, + "cached": info.cached, + "swapTotal": info.swap_total, + "swapFree": info.swap_free + })), + Err(_) => Ok(json!({})), + } +} |