diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/js/30_os.js | 5 | ||||
-rw-r--r-- | runtime/js/90_deno_ns.js | 1 | ||||
-rw-r--r-- | runtime/ops/os.rs | 17 |
3 files changed, 23 insertions, 0 deletions
diff --git a/runtime/js/30_os.js b/runtime/js/30_os.js index 9cc2ba5c7..f9df42305 100644 --- a/runtime/js/30_os.js +++ b/runtime/js/30_os.js @@ -30,6 +30,10 @@ return core.opSync("op_network_interfaces"); } + function getGid() { + return core.opSync("op_getgid"); + } + function getUid() { return core.opSync("op_getuid"); } @@ -94,6 +98,7 @@ env, execPath, exit, + getGid, getUid, hostname, loadavg, diff --git a/runtime/js/90_deno_ns.js b/runtime/js/90_deno_ns.js index 879e63e57..24a31bc31 100644 --- a/runtime/js/90_deno_ns.js +++ b/runtime/js/90_deno_ns.js @@ -124,6 +124,7 @@ osRelease: __bootstrap.os.osRelease, systemMemoryInfo: __bootstrap.os.systemMemoryInfo, networkInterfaces: __bootstrap.os.networkInterfaces, + getGid: __bootstrap.os.getGid, getUid: __bootstrap.os.getUid, sleepSync: __bootstrap.timers.sleepSync, listen: __bootstrap.netUnstable.listen, diff --git a/runtime/ops/os.rs b/runtime/ops/os.rs index c74a423ab..37da410ca 100644 --- a/runtime/ops/os.rs +++ b/runtime/ops/os.rs @@ -22,6 +22,7 @@ pub fn init(maybe_exit_code: Option<Arc<AtomicI32>>) -> Extension { op_exit::decl(), op_delete_env::decl(), op_get_env::decl(), + op_getgid::decl(), op_getuid::decl(), op_hostname::decl(), op_loadavg::decl(), @@ -227,6 +228,22 @@ fn op_system_memory_info( #[cfg(not(windows))] #[op] +fn op_getgid(state: &mut OpState) -> Result<Option<u32>, AnyError> { + super::check_unstable(state, "Deno.getGid"); + state.borrow_mut::<Permissions>().env.check_all()?; + unsafe { Ok(Some(libc::getgid())) } +} + +#[cfg(windows)] +#[op] +fn op_getgid(state: &mut OpState) -> Result<Option<u32>, AnyError> { + super::check_unstable(state, "Deno.getGid"); + state.borrow_mut::<Permissions>().env.check_all()?; + Ok(None) +} + +#[cfg(not(windows))] +#[op] fn op_getuid(state: &mut OpState) -> Result<Option<u32>, AnyError> { super::check_unstable(state, "Deno.getUid"); state.borrow_mut::<Permissions>().env.check_all()?; |