summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/flags.rs8
-rw-r--r--cli/tools/installer.rs37
-rw-r--r--cli/tools/standalone.rs1
3 files changed, 46 insertions, 0 deletions
diff --git a/cli/flags.rs b/cli/flags.rs
index e5d3a6493..bdd97eea4 100644
--- a/cli/flags.rs
+++ b/cli/flags.rs
@@ -214,6 +214,7 @@ pub struct Flags {
pub argv: Vec<String>,
pub subcommand: DenoSubcommand,
+ pub allow_all: bool,
pub allow_env: Option<Vec<String>>,
pub allow_hrtime: bool,
pub allow_net: Option<Vec<String>>,
@@ -269,6 +270,11 @@ impl Flags {
pub fn to_permission_args(&self) -> Vec<String> {
let mut args = vec![];
+ if self.allow_all {
+ args.push("--allow-all".to_string());
+ return args;
+ }
+
match &self.allow_read {
Some(read_allowlist) if read_allowlist.is_empty() => {
args.push("--allow-read".to_string());
@@ -2252,6 +2258,7 @@ fn permission_args_parse(flags: &mut Flags, matches: &clap::ArgMatches) {
flags.allow_hrtime = true;
}
if matches.is_present("allow-all") {
+ flags.allow_all = true;
flags.allow_read = Some(vec![]);
flags.allow_env = Some(vec![]);
flags.allow_net = Some(vec![]);
@@ -2647,6 +2654,7 @@ mod tests {
subcommand: DenoSubcommand::Run(RunFlags {
script: "gist.ts".to_string(),
}),
+ allow_all: true,
allow_net: Some(vec![]),
allow_env: Some(vec![]),
allow_run: Some(vec![]),
diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs
index ac164a2f3..b65de2615 100644
--- a/cli/tools/installer.rs
+++ b/cli/tools/installer.rs
@@ -730,6 +730,43 @@ mod tests {
}
#[test]
+ fn install_allow_all() {
+ let temp_dir = TempDir::new().expect("tempdir fail");
+ let bin_dir = temp_dir.path().join("bin");
+ std::fs::create_dir(&bin_dir).unwrap();
+
+ install(
+ Flags {
+ allow_all: true,
+ ..Flags::default()
+ },
+ InstallFlags {
+ module_url: "http://localhost:4545/echo_server.ts".to_string(),
+ args: vec![],
+ name: Some("echo_test".to_string()),
+ root: Some(temp_dir.path().to_path_buf()),
+ force: false,
+ },
+ )
+ .unwrap();
+
+ let mut file_path = bin_dir.join("echo_test");
+ if cfg!(windows) {
+ file_path = file_path.with_extension("cmd");
+ }
+
+ let content = fs::read_to_string(file_path).unwrap();
+ if cfg!(windows) {
+ assert!(content.contains(
+ r#""run" "--allow-all" "http://localhost:4545/echo_server.ts""#
+ ));
+ } else {
+ assert!(content
+ .contains(r#"run --allow-all 'http://localhost:4545/echo_server.ts'"#));
+ }
+ }
+
+ #[test]
fn install_local_module() {
let temp_dir = TempDir::new().expect("tempdir fail");
let bin_dir = temp_dir.path().join("bin");
diff --git a/cli/tools/standalone.rs b/cli/tools/standalone.rs
index f6b89caa2..a29b405ba 100644
--- a/cli/tools/standalone.rs
+++ b/cli/tools/standalone.rs
@@ -204,6 +204,7 @@ pub fn compile_to_runtime_flags(
subcommand: DenoSubcommand::Run(RunFlags {
script: "placeholder".to_string(),
}),
+ allow_all: flags.allow_all,
allow_env: flags.allow_env,
allow_hrtime: flags.allow_hrtime,
allow_net: flags.allow_net,