diff options
| author | Yoshiya Hinosawa <stibium121@gmail.com> | 2022-01-31 14:44:19 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-31 14:44:19 +0900 |
| commit | 49a0db0d2a2a697320ea95bacaca9bc61199c951 (patch) | |
| tree | 4c5d7557afe1c93821ac5259e999e776f537041d /runtime/ops/os.rs | |
| parent | 245f69256b9e22f7759b887e82138ad3844a8cf4 (diff) | |
feat(unstable): add Deno.getUid (#13496)
Diffstat (limited to 'runtime/ops/os.rs')
| -rw-r--r-- | runtime/ops/os.rs | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/runtime/ops/os.rs b/runtime/ops/os.rs index 877dbce21..405faf45a 100644 --- a/runtime/ops/os.rs +++ b/runtime/ops/os.rs @@ -17,16 +17,17 @@ use std::sync::Arc; pub fn init(maybe_exit_code: Option<Arc<AtomicI32>>) -> Extension { Extension::builder() .ops(vec![ - ("op_exit", op_sync(op_exit)), ("op_env", op_sync(op_env)), ("op_exec_path", op_sync(op_exec_path)), - ("op_set_env", op_sync(op_set_env)), - ("op_get_env", op_sync(op_get_env)), + ("op_exit", op_sync(op_exit)), ("op_delete_env", op_sync(op_delete_env)), + ("op_get_env", op_sync(op_get_env)), + ("op_getuid", op_sync(op_getuid)), ("op_hostname", op_sync(op_hostname)), ("op_loadavg", op_sync(op_loadavg)), ("op_network_interfaces", op_sync(op_network_interfaces)), ("op_os_release", op_sync(op_os_release)), + ("op_set_env", op_sync(op_set_env)), ("op_set_exit_code", op_sync(op_set_exit_code)), ("op_system_memory_info", op_sync(op_system_memory_info)), ]) @@ -237,3 +238,25 @@ fn op_system_memory_info( Err(_) => Ok(None), } } + +#[cfg(not(windows))] +fn op_getuid( + state: &mut OpState, + _: (), + _: (), +) -> Result<Option<u32>, AnyError> { + super::check_unstable(state, "Deno.getUid"); + state.borrow_mut::<Permissions>().env.check_all()?; + unsafe { Ok(Some(libc::getuid())) } +} + +#[cfg(windows)] +fn op_getuid( + state: &mut OpState, + _: (), + _: (), +) -> Result<Option<u32>, AnyError> { + super::check_unstable(state, "Deno.getUid"); + state.borrow_mut::<Permissions>().env.check_all()?; + Ok(None) +} |
