summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/bench.rs13
-rw-r--r--cli/tools/repl/mod.rs7
-rw-r--r--cli/tools/run.rs20
-rw-r--r--cli/tools/standalone.rs4
-rw-r--r--cli/tools/test.rs26
5 files changed, 45 insertions, 25 deletions
diff --git a/cli/tools/bench.rs b/cli/tools/bench.rs
index 24fb07919..2d54b260d 100644
--- a/cli/tools/bench.rs
+++ b/cli/tools/bench.rs
@@ -28,6 +28,7 @@ use deno_core::futures::StreamExt;
use deno_core::ModuleSpecifier;
use deno_graph::ModuleKind;
use deno_runtime::permissions::Permissions;
+use deno_runtime::permissions::PermissionsContainer;
use deno_runtime::tokio_util::run_local;
use indexmap::IndexMap;
use log::Level;
@@ -337,8 +338,8 @@ async fn check_specifiers(
specifiers,
false,
lib,
- Permissions::allow_all(),
- permissions,
+ PermissionsContainer::allow_all(),
+ PermissionsContainer::new(permissions),
true,
)
.await?;
@@ -358,7 +359,7 @@ async fn bench_specifier(
let mut worker = create_main_worker_for_test_or_bench(
&ps,
specifier.clone(),
- permissions,
+ PermissionsContainer::new(permissions),
vec![ops::bench::init(channel.clone(), filter)],
Default::default(),
)
@@ -490,6 +491,9 @@ pub async fn run_benchmarks(
bench_flags: BenchFlags,
) -> Result<(), AnyError> {
let ps = ProcState::build(flags).await?;
+ // Various bench files should not share the same permissions in terms of
+ // `PermissionsContainer` - otherwise granting/revoking permissions in one
+ // file would have impact on other files, which is undesirable.
let permissions =
Permissions::from_options(&ps.options.permissions_options())?;
@@ -527,6 +531,9 @@ pub async fn run_benchmarks_with_watch(
bench_flags: BenchFlags,
) -> Result<(), AnyError> {
let ps = ProcState::build(flags).await?;
+ // Various bench files should not share the same permissions in terms of
+ // `PermissionsContainer` - otherwise granting/revoking permissions in one
+ // file would have impact on other files, which is undesirable.
let permissions =
Permissions::from_options(&ps.options.permissions_options())?;
diff --git a/cli/tools/repl/mod.rs b/cli/tools/repl/mod.rs
index fc03dee2f..00f10b7d6 100644
--- a/cli/tools/repl/mod.rs
+++ b/cli/tools/repl/mod.rs
@@ -8,6 +8,7 @@ use crate::worker::create_main_worker;
use deno_core::error::AnyError;
use deno_core::resolve_url_or_path;
use deno_runtime::permissions::Permissions;
+use deno_runtime::permissions::PermissionsContainer;
use rustyline::error::ReadlineError;
mod cdp;
@@ -72,7 +73,7 @@ async fn read_eval_file(
let file = ps
.file_fetcher
- .fetch(&specifier, &mut Permissions::allow_all())
+ .fetch(&specifier, PermissionsContainer::allow_all())
.await?;
Ok((*file.source).to_string())
@@ -84,7 +85,9 @@ pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result<i32, AnyError> {
let mut worker = create_main_worker(
&ps,
main_module.clone(),
- Permissions::from_options(&ps.options.permissions_options())?,
+ PermissionsContainer::new(Permissions::from_options(
+ &ps.options.permissions_options(),
+ )?),
)
.await?;
worker.setup_repl().await?;
diff --git a/cli/tools/run.rs b/cli/tools/run.rs
index af982e483..3830affed 100644
--- a/cli/tools/run.rs
+++ b/cli/tools/run.rs
@@ -9,6 +9,7 @@ use deno_ast::ModuleSpecifier;
use deno_core::error::AnyError;
use deno_core::resolve_url_or_path;
use deno_runtime::permissions::Permissions;
+use deno_runtime::permissions::PermissionsContainer;
use crate::args::EvalFlags;
use crate::args::Flags;
@@ -56,8 +57,9 @@ To grant permissions, set them before the script argument. For example:
} else {
resolve_url_or_path(&run_flags.script)?
};
- let permissions =
- Permissions::from_options(&ps.options.permissions_options())?;
+ let permissions = PermissionsContainer::new(Permissions::from_options(
+ &ps.options.permissions_options(),
+ )?);
let mut worker =
create_main_worker(&ps, main_module.clone(), permissions).await?;
@@ -71,7 +73,9 @@ pub async fn run_from_stdin(flags: Flags) -> Result<i32, AnyError> {
let mut worker = create_main_worker(
&ps.clone(),
main_module.clone(),
- Permissions::from_options(&ps.options.permissions_options())?,
+ PermissionsContainer::new(Permissions::from_options(
+ &ps.options.permissions_options(),
+ )?),
)
.await?;
@@ -110,8 +114,9 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> {
let ps =
ProcState::build_for_file_watcher((*flags).clone(), sender.clone())
.await?;
- let permissions =
- Permissions::from_options(&ps.options.permissions_options())?;
+ let permissions = PermissionsContainer::new(Permissions::from_options(
+ &ps.options.permissions_options(),
+ )?);
let worker =
create_main_worker(&ps, main_module.clone(), permissions).await?;
worker.run_for_watcher().await?;
@@ -143,8 +148,9 @@ pub async fn eval_command(
let main_module =
resolve_url_or_path(&format!("./$deno$eval.{}", eval_flags.ext))?;
let ps = ProcState::build(flags).await?;
- let permissions =
- Permissions::from_options(&ps.options.permissions_options())?;
+ let permissions = PermissionsContainer::new(Permissions::from_options(
+ &ps.options.permissions_options(),
+ )?);
let mut worker =
create_main_worker(&ps, main_module.clone(), permissions).await?;
// Create a dummy source file.
diff --git a/cli/tools/standalone.rs b/cli/tools/standalone.rs
index 471c9605d..07baecc05 100644
--- a/cli/tools/standalone.rs
+++ b/cli/tools/standalone.rs
@@ -21,7 +21,7 @@ use deno_core::serde_json;
use deno_core::url::Url;
use deno_graph::ModuleSpecifier;
use deno_runtime::colors;
-use deno_runtime::permissions::Permissions;
+use deno_runtime::permissions::PermissionsContainer;
use std::env;
use std::fs;
use std::fs::File;
@@ -170,7 +170,7 @@ async fn create_standalone_binary(
Some(import_map_specifier) => {
let file = ps
.file_fetcher
- .fetch(&import_map_specifier, &mut Permissions::allow_all())
+ .fetch(&import_map_specifier, PermissionsContainer::allow_all())
.await
.context(format!(
"Unable to load '{}' import map",
diff --git a/cli/tools/test.rs b/cli/tools/test.rs
index 35c0ea079..9d1774fff 100644
--- a/cli/tools/test.rs
+++ b/cli/tools/test.rs
@@ -37,6 +37,7 @@ use deno_runtime::fmt_errors::format_js_error;
use deno_runtime::ops::io::Stdio;
use deno_runtime::ops::io::StdioPipe;
use deno_runtime::permissions::Permissions;
+use deno_runtime::permissions::PermissionsContainer;
use deno_runtime::tokio_util::run_local;
use indexmap::IndexMap;
use log::Level;
@@ -723,7 +724,7 @@ async fn test_specifier(
let mut worker = create_main_worker_for_test_or_bench(
&ps,
specifier.clone(),
- permissions,
+ PermissionsContainer::new(permissions),
vec![ops::testing::init(
sender,
fail_fast_tracker,
@@ -895,11 +896,8 @@ async fn fetch_inline_files(
) -> Result<Vec<File>, AnyError> {
let mut files = Vec::new();
for specifier in specifiers {
- let mut fetch_permissions = Permissions::allow_all();
- let file = ps
- .file_fetcher
- .fetch(&specifier, &mut fetch_permissions)
- .await?;
+ let fetch_permissions = PermissionsContainer::allow_all();
+ let file = ps.file_fetcher.fetch(&specifier, fetch_permissions).await?;
let inline_files = if file.media_type == MediaType::Unknown {
extract_files_from_fenced_blocks(
@@ -957,8 +955,8 @@ pub async fn check_specifiers(
specifiers,
false,
lib,
- Permissions::allow_all(),
- permissions.clone(),
+ PermissionsContainer::new(Permissions::allow_all()),
+ PermissionsContainer::new(permissions.clone()),
false,
)
.await?;
@@ -979,8 +977,8 @@ pub async fn check_specifiers(
module_specifiers,
false,
lib,
- Permissions::allow_all(),
- permissions,
+ PermissionsContainer::allow_all(),
+ PermissionsContainer::new(permissions),
true,
)
.await?;
@@ -1324,7 +1322,7 @@ async fn fetch_specifiers_with_test_mode(
for (specifier, mode) in &mut specifiers_with_mode {
let file = ps
.file_fetcher
- .fetch(specifier, &mut Permissions::allow_all())
+ .fetch(specifier, PermissionsContainer::allow_all())
.await?;
if file.media_type == MediaType::Unknown
@@ -1342,6 +1340,9 @@ pub async fn run_tests(
test_flags: TestFlags,
) -> Result<(), AnyError> {
let ps = ProcState::build(flags).await?;
+ // Various test files should not share the same permissions in terms of
+ // `PermissionsContainer` - otherwise granting/revoking permissions in one
+ // file would have impact on other files, which is undesirable.
let permissions =
Permissions::from_options(&ps.options.permissions_options())?;
let specifiers_with_mode = fetch_specifiers_with_test_mode(
@@ -1383,6 +1384,9 @@ pub async fn run_tests_with_watch(
test_flags: TestFlags,
) -> Result<(), AnyError> {
let ps = ProcState::build(flags).await?;
+ // Various test files should not share the same permissions in terms of
+ // `PermissionsContainer` - otherwise granting/revoking permissions in one
+ // file would have impact on other files, which is undesirable.
let permissions =
Permissions::from_options(&ps.options.permissions_options())?;