diff options
author | Yoshiya Hinosawa <stibium121@gmail.com> | 2022-09-29 19:34:16 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-29 19:34:16 +0900 |
commit | 15ea624790f2f96ba9d852f34d114d6c8329245a (patch) | |
tree | 48c35cd381ec1db148b1d7341f95054212b8a194 /runtime/ops/permissions.rs | |
parent | 37887d4a1f2a4fc10347993143a50a17495e9f53 (diff) |
refactor(cli): use shared sys kind parser in flags.rs (#16087)
Diffstat (limited to 'runtime/ops/permissions.rs')
-rw-r--r-- | runtime/ops/permissions.rs | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/runtime/ops/permissions.rs b/runtime/ops/permissions.rs index b79330f7f..5d6352744 100644 --- a/runtime/ops/permissions.rs +++ b/runtime/ops/permissions.rs @@ -1,8 +1,8 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. +use crate::permissions::parse_sys_kind; use crate::permissions::Permissions; use deno_core::error::custom_error; -use deno_core::error::type_error; use deno_core::error::uri_error; use deno_core::error::AnyError; use deno_core::op; @@ -50,7 +50,9 @@ pub fn op_query_permission( .as_ref(), ), "env" => permissions.env.query(args.variable.as_deref()), - "sys" => permissions.sys.query(parse_sys_kind(args.kind.as_deref())?), + "sys" => permissions + .sys + .query(args.kind.as_deref().map(parse_sys_kind).transpose()?), "run" => permissions.run.query(args.command.as_deref()), "ffi" => permissions.ffi.query(args.path.as_deref().map(Path::new)), "hrtime" => permissions.hrtime.query(), @@ -84,7 +86,7 @@ pub fn op_revoke_permission( "env" => permissions.env.revoke(args.variable.as_deref()), "sys" => permissions .sys - .revoke(parse_sys_kind(args.kind.as_deref())?), + .revoke(args.kind.as_deref().map(parse_sys_kind).transpose()?), "run" => permissions.run.revoke(args.command.as_deref()), "ffi" => permissions.ffi.revoke(args.path.as_deref().map(Path::new)), "hrtime" => permissions.hrtime.revoke(), @@ -118,7 +120,7 @@ pub fn op_request_permission( "env" => permissions.env.request(args.variable.as_deref()), "sys" => permissions .sys - .request(parse_sys_kind(args.kind.as_deref())?), + .request(args.kind.as_deref().map(parse_sys_kind).transpose()?), "run" => permissions.run.request(args.command.as_deref()), "ffi" => permissions.ffi.request(args.path.as_deref().map(Path::new)), "hrtime" => permissions.hrtime.request(), @@ -141,15 +143,3 @@ fn parse_host(host_str: &str) -> Result<(String, Option<u16>), AnyError> { let hostname = url.host_str().unwrap(); Ok((hostname.to_string(), url.port())) } - -fn parse_sys_kind(kind: Option<&str>) -> Result<Option<&str>, AnyError> { - if let Some(kind) = kind { - match kind { - "hostname" | "osRelease" | "loadavg" | "networkInterfaces" - | "systemMemoryInfo" | "getUid" | "getGid" => Ok(Some(kind)), - _ => Err(type_error(format!("unknown system info kind \"{}\"", kind))), - } - } else { - Ok(kind) - } -} |