From a5d204d425c69809b82309325ac65113fb876b54 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sat, 12 Feb 2022 22:13:21 -0500 Subject: [PATCH] feat: permission prompt by default (#13650) --- cli/flags.rs | 17 ++++++++++------- cli/tests/integration/mod.rs | 1 + cli/tools/installer.rs | 8 ++++---- cli/tools/standalone.rs | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cli/flags.rs b/cli/flags.rs index 7255502fec..cdf6a9ec91 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -245,7 +245,7 @@ pub struct Flags { /// If true, a list of Node built-in modules will be injected into /// the import map. pub compat: bool, - pub prompt: bool, + pub no_prompt: bool, pub reload: bool, pub repl: bool, pub seed: Option, @@ -394,7 +394,7 @@ impl Flags { allow_read: self.allow_read.clone(), allow_run: self.allow_run.clone(), allow_write: self.allow_write.clone(), - prompt: self.prompt, + prompt: !self.no_prompt, } } } @@ -1489,10 +1489,13 @@ fn permission_args(app: App) -> App { .long("allow-all") .help("Allow all permissions"), ) + .arg(Arg::new("prompt").long("prompt").help( + "deprecated: Fallback to prompt if required permission wasn't passed", + )) .arg( - Arg::new("prompt") - .long("prompt") - .help("Fallback to prompt if required permission wasn't passed"), + Arg::new("no-prompt") + .long("no-prompt") + .help("Always throw if required permission wasn't passed"), ) } @@ -2287,8 +2290,8 @@ fn permission_args_parse(flags: &mut Flags, matches: &clap::ArgMatches) { flags.allow_ffi = Some(vec![]); flags.allow_hrtime = true; } - if matches.is_present("prompt") { - flags.prompt = true; + if matches.is_present("no-prompt") { + flags.no_prompt = true; } } fn unsafely_ignore_certificate_errors_parse( diff --git a/cli/tests/integration/mod.rs b/cli/tests/integration/mod.rs index 3ab79f7df2..1c557e3aa3 100644 --- a/cli/tests/integration/mod.rs +++ b/cli/tests/integration/mod.rs @@ -1140,6 +1140,7 @@ fn js_unit_tests() { .arg("test") .arg("--unstable") .arg("--location=http://js-unit-tests/foo/bar") + .arg("--no-prompt") .arg("-A") .arg(util::tests_path().join("unit")) .spawn() diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs index e21e4954aa..4cbbb7cf51 100644 --- a/cli/tools/installer.rs +++ b/cli/tools/installer.rs @@ -328,8 +328,8 @@ fn resolve_shim_data( executable_args.push("--cached-only".to_string()); } - if flags.prompt { - executable_args.push("--prompt".to_string()); + if flags.no_prompt { + executable_args.push("--no-prompt".to_string()); } if !flags.v8_flags.is_empty() { @@ -714,7 +714,7 @@ mod tests { fn install_prompt() { let shim_data = resolve_shim_data( &Flags { - prompt: true, + no_prompt: true, ..Flags::default() }, &InstallFlags { @@ -729,7 +729,7 @@ mod tests { assert_eq!( shim_data.args, - vec!["run", "--prompt", "http://localhost:4545/echo_server.ts",] + vec!["run", "--no-prompt", "http://localhost:4545/echo_server.ts",] ); } diff --git a/cli/tools/standalone.rs b/cli/tools/standalone.rs index 84a1f00fbb..2f8ca1533f 100644 --- a/cli/tools/standalone.rs +++ b/cli/tools/standalone.rs @@ -241,7 +241,7 @@ pub fn compile_to_runtime_flags( .unsafely_ignore_certificate_errors .clone(), no_remote: false, - prompt: flags.prompt, + no_prompt: flags.no_prompt, reload: false, repl: false, seed: flags.seed,