Skip to content

Commit

Permalink
refactor: cleanup cli/main.rs (denoland#13160)
Browse files Browse the repository at this point in the history
  • Loading branch information
bartlomieju authored Dec 21, 2021
1 parent 9825c87 commit 907cef5
Show file tree
Hide file tree
Showing 6 changed files with 207 additions and 206 deletions.
116 changes: 38 additions & 78 deletions cli/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -541,14 +541,7 @@ async fn install_command(
create_main_worker(&ps, main_module.clone(), permissions, None);
// First, fetch and compile the module; this step ensures that the module exists.
worker.preload_module(&main_module, true).await?;
tools::installer::install(
flags,
&install_flags.module_url,
install_flags.args,
install_flags.name,
install_flags.root,
install_flags.force,
)?;
tools::installer::install(flags, install_flags)?;
Ok(0)
}

Expand Down Expand Up @@ -649,15 +642,9 @@ async fn eval_command(
worker.execute_side_module(&compat::GLOBAL_URL).await?;
}
worker.execute_main_module(&main_module).await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('load'))",
)?;
worker.dispatch_load_event(&located_script_name!())?;
worker.run_event_loop(false).await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('unload'))",
)?;
worker.dispatch_unload_event(&located_script_name!())?;
Ok(0)
}

Expand Down Expand Up @@ -987,15 +974,9 @@ async fn run_from_stdin(flags: Flags) -> Result<i32, AnyError> {
worker.execute_side_module(&compat::GLOBAL_URL).await?;
}
worker.execute_main_module(&main_module).await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('load'))",
)?;
worker.dispatch_load_event(&located_script_name!())?;
worker.run_event_loop(false).await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('unload'))",
)?;
worker.dispatch_unload_event(&located_script_name!())?;
Ok(worker.get_exit_code())
}

Expand Down Expand Up @@ -1115,10 +1096,7 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> {
self.worker.execute_side_module(&compat::GLOBAL_URL).await?;
}
self.worker.execute_main_module(main_module).await?;
self.worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('load'))",
)?;
self.worker.dispatch_load_event(&located_script_name!())?;
self.pending_unload = true;

let result = self.worker.run_event_loop(false).await;
Expand All @@ -1128,10 +1106,7 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> {
return Err(err);
}

self.worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('unload'))",
)?;
self.worker.dispatch_unload_event(&located_script_name!())?;

Ok(())
}
Expand All @@ -1142,10 +1117,7 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<i32, AnyError> {
if self.pending_unload {
self
.worker
.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('unload'))",
)
.dispatch_unload_event(&located_script_name!())
.unwrap();
}
}
Expand Down Expand Up @@ -1243,17 +1215,11 @@ async fn run_command(
worker.execute_main_module(&main_module).await?;
}

worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('load'))",
)?;
worker.dispatch_load_event(&located_script_name!())?;
worker
.run_event_loop(maybe_coverage_collector.is_none())
.await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('unload'))",
)?;
worker.dispatch_unload_event(&located_script_name!())?;

if let Some(coverage_collector) = maybe_coverage_collector.as_mut() {
worker
Expand Down Expand Up @@ -1296,6 +1262,28 @@ async fn test_command(
Ok(0)
}

async fn completions_command(
_flags: Flags,
completions_flags: CompletionsFlags,
) -> Result<i32, AnyError> {
write_to_stdout_ignore_sigpipe(&completions_flags.buf)?;
Ok(0)
}

async fn types_command(flags: Flags) -> Result<i32, AnyError> {
let types = get_types(flags.unstable);
write_to_stdout_ignore_sigpipe(types.as_bytes())?;
Ok(0)
}

async fn upgrade_command(
_flags: Flags,
upgrade_flags: UpgradeFlags,
) -> Result<i32, AnyError> {
tools::upgrade::upgrade(upgrade_flags).await?;
Ok(0)
}

fn init_v8_flags(v8_flags: &[String]) {
let v8_flags_includes_help = v8_flags
.iter()
Expand Down Expand Up @@ -1367,38 +1355,12 @@ fn get_subcommand(
DenoSubcommand::Test(test_flags) => {
test_command(flags, test_flags).boxed_local()
}
DenoSubcommand::Completions(CompletionsFlags { buf }) => {
if let Err(e) = write_to_stdout_ignore_sigpipe(&buf) {
eprintln!("{}", e);
std::process::exit(1);
}
std::process::exit(0);
}
DenoSubcommand::Types => {
let types = get_types(flags.unstable);
if let Err(e) = write_to_stdout_ignore_sigpipe(types.as_bytes()) {
eprintln!("{}", e);
std::process::exit(1);
}
std::process::exit(0);
DenoSubcommand::Completions(completions_flags) => {
completions_command(flags, completions_flags).boxed_local()
}
DenoSubcommand::Types => types_command(flags).boxed_local(),
DenoSubcommand::Upgrade(upgrade_flags) => {
let UpgradeFlags {
force,
dry_run,
canary,
version,
output,
ca_file,
} = upgrade_flags;
async move {
tools::upgrade::upgrade_command(
dry_run, force, canary, version, output, ca_file,
)
.await?;
Ok(0)
}
.boxed_local()
upgrade_command(flags, upgrade_flags).boxed_local()
}
}
}
Expand Down Expand Up @@ -1457,10 +1419,8 @@ pub fn main() {
Ok(None) => Ok(()),
Err(err) => Err(err),
};
if let Err(err) = standalone_res {
eprintln!("{}: {}", colors::red_bold("error"), err.to_string());
std::process::exit(1);
}
// TODO(bartlomieju): doesn't handle exit code set by the runtime properly
unwrap_or_exit(standalone_res);

let flags = match flags::flags_from_vec(args) {
Ok(flags) => flags,
Expand Down
10 changes: 2 additions & 8 deletions cli/standalone.rs
Original file line number Diff line number Diff line change
Expand Up @@ -284,15 +284,9 @@ pub async fn run(
js_runtime.sync_ops_cache();
}
worker.execute_main_module(&main_module).await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('load'))",
)?;
worker.dispatch_load_event(&located_script_name!())?;
worker.run_event_loop(true).await?;
worker.execute_script(
&located_script_name!(),
"window.dispatchEvent(new Event('unload'))",
)?;
worker.dispatch_unload_event(&located_script_name!())?;
std::process::exit(0);
}

Expand Down
Loading

0 comments on commit 907cef5

Please sign in to comment.