diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-09-03 10:07:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-03 11:07:02 +0200 |
commit | 71e4ac774bc18902a0d23f29d9b18b43b19bbbf2 (patch) | |
tree | 751a25bf46a9eb0c0ced483877e39c3bef7b4200 | |
parent | bf7571a6f93659ef087ef529225642ce85e215d4 (diff) |
BREAKING(unstable): drop support for Deno.run.{clearEnv,gid,uid} (#25371)
These are unstable options and the APIs is now deprecated. To limit
amount of unstable flags we elected to have these APIs removed.
-rw-r--r-- | runtime/js/40_process.js | 6 | ||||
-rw-r--r-- | runtime/lib.rs | 3 | ||||
-rw-r--r-- | runtime/ops/process.rs | 20 | ||||
-rw-r--r-- | tests/unit/process_test.ts | 96 |
4 files changed, 2 insertions, 123 deletions
diff --git a/runtime/js/40_process.js b/runtime/js/40_process.js index 0f28b9d5c..b2269ffd6 100644 --- a/runtime/js/40_process.js +++ b/runtime/js/40_process.js @@ -133,10 +133,7 @@ class Process { function run({ cmd, cwd = undefined, - clearEnv = false, env = { __proto__: null }, - gid = undefined, - uid = undefined, stdout = "inherit", stderr = "inherit", stdin = "inherit", @@ -155,10 +152,7 @@ function run({ const res = opRun({ cmd: ArrayPrototypeMap(cmd, String), cwd, - clearEnv, env: ObjectEntries(env), - gid, - uid, stdin, stdout, stderr, diff --git a/runtime/lib.rs b/runtime/lib.rs index 0b3abba3d..083acf657 100644 --- a/runtime/lib.rs +++ b/runtime/lib.rs @@ -99,10 +99,11 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[UnstableGranularFlag] = &[ show_in_help: true, id: 7, }, + // TODO(bartlomieju): consider removing it UnstableGranularFlag { name: ops::process::UNSTABLE_FEATURE_NAME, help_text: "Enable unstable process APIs", - show_in_help: true, + show_in_help: false, id: 8, }, UnstableGranularFlag { diff --git a/runtime/ops/process.rs b/runtime/ops/process.rs index 25edfe662..11e439051 100644 --- a/runtime/ops/process.rs +++ b/runtime/ops/process.rs @@ -1,6 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use super::check_unstable; use deno_core::anyhow::Context; use deno_core::error::type_error; use deno_core::error::AnyError; @@ -642,12 +641,7 @@ mod deprecated { pub struct RunArgs { cmd: Vec<String>, cwd: Option<String>, - clear_env: bool, env: Vec<(String, String)>, - #[cfg(unix)] - gid: Option<u32>, - #[cfg(unix)] - uid: Option<u32>, stdin: StdioOrRid, stdout: StdioOrRid, stderr: StdioOrRid, @@ -700,25 +694,11 @@ mod deprecated { }); cwd.map(|d| c.current_dir(d)); - if run_args.clear_env { - super::check_unstable(state, UNSTABLE_FEATURE_NAME, "Deno.run.clearEnv"); - c.env_clear(); - } for (key, value) in &env { c.env(key, value); } #[cfg(unix)] - if let Some(gid) = run_args.gid { - super::check_unstable(state, UNSTABLE_FEATURE_NAME, "Deno.run.gid"); - c.gid(gid); - } - #[cfg(unix)] - if let Some(uid) = run_args.uid { - super::check_unstable(state, UNSTABLE_FEATURE_NAME, "Deno.run.uid"); - c.uid(uid); - } - #[cfg(unix)] // TODO(bartlomieju): #[allow(clippy::undocumented_unsafe_blocks)] unsafe { diff --git a/tests/unit/process_test.ts b/tests/unit/process_test.ts index 799c8d12c..a35362d09 100644 --- a/tests/unit/process_test.ts +++ b/tests/unit/process_test.ts @@ -583,102 +583,6 @@ Deno.test({ permissions: { run: true, read: true } }, function killFailed() { }); Deno.test( - { permissions: { run: true, read: true, env: true } }, - async function clearEnv(): Promise<void> { - // deno-lint-ignore no-deprecated-deno-api - const p = Deno.run({ - cmd: [ - Deno.execPath(), - "eval", - "-p", - "JSON.stringify(Deno.env.toObject())", - ], - stdout: "piped", - clearEnv: true, - env: { - FOO: "23147", - }, - }); - - const obj = JSON.parse(new TextDecoder().decode(await p.output())); - - // can't check for object equality because the OS may set additional env - // vars for processes, so we check if PATH isn't present as that is a common - // env var across OS's and isn't set for processes. - assertEquals(obj.FOO, "23147"); - assert(!("PATH" in obj)); - - p.close(); - }, -); - -Deno.test( - { - permissions: { run: true, read: true }, - ignore: Deno.build.os === "windows", - }, - async function uid(): Promise<void> { - // deno-lint-ignore no-deprecated-deno-api - const p = Deno.run({ - cmd: [ - "id", - "-u", - ], - stdout: "piped", - }); - - const currentUid = new TextDecoder().decode(await p.output()); - p.close(); - - if (currentUid !== "0") { - assertThrows(() => { - // deno-lint-ignore no-deprecated-deno-api - Deno.run({ - cmd: [ - "echo", - "fhqwhgads", - ], - uid: 0, - }); - }, Deno.errors.PermissionDenied); - } - }, -); - -Deno.test( - { - permissions: { run: true, read: true }, - ignore: Deno.build.os === "windows", - }, - async function gid(): Promise<void> { - // deno-lint-ignore no-deprecated-deno-api - const p = Deno.run({ - cmd: [ - "id", - "-g", - ], - stdout: "piped", - }); - - const currentGid = new TextDecoder().decode(await p.output()); - p.close(); - - if (currentGid !== "0") { - assertThrows(() => { - // deno-lint-ignore no-deprecated-deno-api - Deno.run({ - cmd: [ - "echo", - "fhqwhgads", - ], - gid: 0, - }); - }, Deno.errors.PermissionDenied); - } - }, -); - -Deno.test( { permissions: { run: true, read: true, write: true }, ignore: Deno.build.os === "windows", |