summaryrefslogtreecommitdiff
path: root/cli/ops/os.rs
diff options
context:
space:
mode:
authorAkshat Agarwal <humancalico@disroot.org>2020-09-10 14:08:17 +0530
committerGitHub <noreply@github.com>2020-09-10 10:38:17 +0200
commitc1b4ff61c9113166705526022452ed2fb00bc7d5 (patch)
treecb13bf71b73566312c5767789c0e19ade6713a08 /cli/ops/os.rs
parentdfd8794da463dd4d0649c41537b5475eaac10447 (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.rs22
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!({})),
+ }
+}