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.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/cli/ops/os.rs b/cli/ops/os.rs
index 10c5e247e..8e4f1e95d 100644
--- a/cli/ops/os.rs
+++ b/cli/ops/os.rs
@@ -21,6 +21,10 @@ pub fn init(i: &mut Isolate, s: &State) {
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))));
+ i.register_op(
+ "os_release",
+ s.core_op(json_op(s.stateful_op(op_os_release))),
+ );
}
#[derive(Deserialize)]
@@ -185,6 +189,16 @@ fn op_hostname(
_zero_copy: Option<ZeroCopyBuf>,
) -> Result<JsonOp, OpError> {
state.check_env()?;
- let hostname = sys_info::hostname().unwrap_or_else(|_| "".to_owned());
+ let hostname = sys_info::hostname().unwrap_or_else(|_| "".to_string());
Ok(JsonOp::Sync(json!(hostname)))
}
+
+fn op_os_release(
+ state: &State,
+ _args: Value,
+ _zero_copy: Option<ZeroCopyBuf>,
+) -> Result<JsonOp, OpError> {
+ state.check_env()?;
+ let release = sys_info::os_release().unwrap_or_else(|_| "".to_string());
+ Ok(JsonOp::Sync(json!(release)))
+}