summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/args/flags.rs19
-rw-r--r--cli/tools/task.rs14
-rw-r--r--tests/specs/run/run_task/__test__.jsonc5
-rw-r--r--tests/specs/run/run_task/empty.out4
4 files changed, 22 insertions, 20 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs
index 765cdf76a..5d3929748 100644
--- a/cli/args/flags.rs
+++ b/cli/args/flags.rs
@@ -4679,7 +4679,7 @@ fn repl_parse(
fn run_parse(
flags: &mut Flags,
matches: &mut ArgMatches,
- app: Command,
+ mut app: Command,
bare: bool,
) -> clap::error::Result<()> {
runtime_args_parse(flags, matches, true, true)?;
@@ -4701,11 +4701,16 @@ fn run_parse(
"[SCRIPT_ARG] may only be omitted with --v8-flags=--help, else to use the repl with arguments, please use the `deno repl` subcommand",
));
} else {
- flags.subcommand = DenoSubcommand::Task(TaskFlags {
- cwd: None,
- task: None,
- is_run: true,
- });
+ return Err(
+ app
+ .get_subcommands_mut()
+ .find(|subcommand| subcommand.get_name() == "run")
+ .unwrap()
+ .error(
+ clap::error::ErrorKind::MissingRequiredArgument,
+ "[SCRIPT_ARG] may only be omitted with --v8-flags=--help",
+ ),
+ );
}
Ok(())
@@ -5927,7 +5932,7 @@ mod tests {
);
let r = flags_from_vec(svec!["deno", "run", "--v8-flags=--expose-gc"]);
- assert!(r.is_ok());
+ assert!(r.is_err());
}
#[test]
diff --git a/cli/tools/task.rs b/cli/tools/task.rs
index e806d586c..ae91f53a7 100644
--- a/cli/tools/task.rs
+++ b/cli/tools/task.rs
@@ -36,19 +36,7 @@ pub async fn execute_script(
let cli_options = factory.cli_options()?;
let start_dir = &cli_options.start_dir;
if !start_dir.has_deno_or_pkg_json() {
- if task_flags.is_run {
- bail!(
- r#"deno run couldn't find deno.json(c).
-If you meant to run a script, specify it, e.g., `deno run ./script.ts`.
-To run a task, ensure the config file exists.
-Examples:
-- Script: `deno run ./script.ts`
-- Task: `deno run dev`
-See https://docs.deno.com/go/config"#
- )
- } else {
- bail!("deno task couldn't find deno.json(c). See https://docs.deno.com/go/config")
- }
+ bail!("deno task couldn't find deno.json(c). See https://docs.deno.com/go/config")
}
let force_use_pkg_json =
std::env::var_os(crate::task_runner::USE_PKG_JSON_HIDDEN_ENV_VAR_NAME)
diff --git a/tests/specs/run/run_task/__test__.jsonc b/tests/specs/run/run_task/__test__.jsonc
index b53cca657..dcf0e66b8 100644
--- a/tests/specs/run/run_task/__test__.jsonc
+++ b/tests/specs/run/run_task/__test__.jsonc
@@ -1,5 +1,10 @@
{
"tests": {
+ "deno_run_empty": {
+ "args": "run",
+ "output": "empty.out",
+ "exitCode": 1
+ },
"deno_run_task": {
"args": "run main",
"output": "main.out"
diff --git a/tests/specs/run/run_task/empty.out b/tests/specs/run/run_task/empty.out
new file mode 100644
index 000000000..e9edf494a
--- /dev/null
+++ b/tests/specs/run/run_task/empty.out
@@ -0,0 +1,4 @@
+error: [SCRIPT_ARG] may only be omitted with --v8-flags=--help
+
+Usage: deno run [OPTIONS] [SCRIPT_ARG]...
+