diff options
author | Tuan Le <23419763+tumile@users.noreply.github.com> | 2020-06-09 08:58:30 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-09 14:58:30 +0200 |
commit | 878f306a39812eb71e31cc4dd6e8e0b313c3cecb (patch) | |
tree | 6034aa77561d5b1fec0c6b5c25b066506e51d255 /cli/ops/os.rs | |
parent | 44251ce8eaa0def807b9867f73ee23adfb539487 (diff) |
feat(cli): Add Deno.env.delete() (#5859)
Diffstat (limited to 'cli/ops/os.rs')
-rw-r--r-- | cli/ops/os.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cli/ops/os.rs b/cli/ops/os.rs index 36cd99577..ab7ed2876 100644 --- a/cli/ops/os.rs +++ b/cli/ops/os.rs @@ -15,6 +15,7 @@ pub fn init(i: &mut CoreIsolate, s: &State) { i.register_op("op_exec_path", s.stateful_json_op(op_exec_path)); i.register_op("op_set_env", s.stateful_json_op(op_set_env)); i.register_op("op_get_env", s.stateful_json_op(op_get_env)); + i.register_op("op_delete_env", s.stateful_json_op(op_delete_env)); i.register_op("op_get_dir", s.stateful_json_op(op_get_dir)); i.register_op("op_hostname", s.stateful_json_op(op_hostname)); i.register_op("op_loadavg", s.stateful_json_op(op_loadavg)); @@ -138,6 +139,22 @@ fn op_get_env( } #[derive(Deserialize)] +struct DeleteEnv { + key: String, +} + +fn op_delete_env( + state: &State, + args: Value, + _zero_copy: &mut [ZeroCopyBuf], +) -> Result<JsonOp, OpError> { + let args: DeleteEnv = serde_json::from_value(args)?; + state.check_env()?; + env::remove_var(args.key); + Ok(JsonOp::Sync(json!({}))) +} + +#[derive(Deserialize)] struct Exit { code: i32, } |