summaryrefslogtreecommitdiff
path: root/cli/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/main.rs')
-rw-r--r--cli/main.rs79
1 files changed, 46 insertions, 33 deletions
diff --git a/cli/main.rs b/cli/main.rs
index 47dd4087d..fdbfdad77 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -45,6 +45,7 @@ mod tools;
mod tsc;
mod tsc_config;
mod version;
+mod web_worker;
mod worker;
use crate::file_fetcher::File;
@@ -792,37 +793,31 @@ async fn test_command(
Ok(())
}
-pub fn main() {
- #[cfg(windows)]
- colors::enable_ansi(); // For Windows 10
-
- let args: Vec<String> = env::args().collect();
- let flags = flags::flags_from_vec(args);
-
- if let Some(ref v8_flags) = flags.v8_flags {
- let v8_flags_includes_help = v8_flags
- .iter()
- .any(|flag| flag == "-help" || flag == "--help");
- let v8_flags = once("UNUSED_BUT_NECESSARY_ARG0".to_owned())
- .chain(v8_flags.iter().cloned())
- .collect::<Vec<_>>();
- let unrecognized_v8_flags = v8_set_flags(v8_flags)
- .into_iter()
- .skip(1)
- .collect::<Vec<_>>();
- if !unrecognized_v8_flags.is_empty() {
- for f in unrecognized_v8_flags {
- eprintln!("error: V8 did not recognize flag '{}'", f);
- }
- eprintln!("\nFor a list of V8 flags, use '--v8-flags=--help'");
- std::process::exit(1);
- }
- if v8_flags_includes_help {
- std::process::exit(0);
+fn init_v8_flags(v8_flags: &[String]) {
+ let v8_flags_includes_help = v8_flags
+ .iter()
+ .any(|flag| flag == "-help" || flag == "--help");
+ let v8_flags = once("UNUSED_BUT_NECESSARY_ARG0".to_owned())
+ .chain(v8_flags.iter().cloned())
+ .collect::<Vec<_>>();
+ let unrecognized_v8_flags = v8_set_flags(v8_flags)
+ .into_iter()
+ .skip(1)
+ .collect::<Vec<_>>();
+ if !unrecognized_v8_flags.is_empty() {
+ for f in unrecognized_v8_flags {
+ eprintln!("error: V8 did not recognize flag '{}'", f);
}
+ eprintln!("\nFor a list of V8 flags, use '--v8-flags=--help'");
+ std::process::exit(1);
+ }
+ if v8_flags_includes_help {
+ std::process::exit(0);
}
+}
- let log_level = match flags.log_level {
+fn init_logger(maybe_level: Option<Level>) {
+ let log_level = match maybe_level {
Some(level) => level,
None => Level::Info, // Default log level
};
@@ -853,8 +848,12 @@ pub fn main() {
}
})
.init();
+}
- let fut = match flags.clone().subcommand {
+fn get_subcommand(
+ flags: Flags,
+) -> Pin<Box<dyn Future<Output = Result<(), AnyError>>>> {
+ match flags.clone().subcommand {
DenoSubcommand::Bundle {
source_file,
out_file,
@@ -914,7 +913,7 @@ pub fn main() {
eprintln!("{}", e);
std::process::exit(1);
}
- return;
+ std::process::exit(0);
}
DenoSubcommand::Types => {
let types = get_types(flags.unstable);
@@ -922,7 +921,7 @@ pub fn main() {
eprintln!("{}", e);
std::process::exit(1);
}
- return;
+ std::process::exit(0);
}
DenoSubcommand::Upgrade {
force,
@@ -934,9 +933,23 @@ pub fn main() {
tools::upgrade::upgrade_command(dry_run, force, version, output, ca_file)
.boxed_local()
}
- };
+ }
+}
+
+pub fn main() {
+ #[cfg(windows)]
+ colors::enable_ansi(); // For Windows 10
+
+ let args: Vec<String> = env::args().collect();
+ let flags = flags::flags_from_vec(args);
+
+ if let Some(ref v8_flags) = flags.v8_flags {
+ init_v8_flags(v8_flags);
+ }
+ init_logger(flags.log_level);
- let result = tokio_util::run_basic(fut);
+ let subcommand_future = get_subcommand(flags);
+ let result = tokio_util::run_basic(subcommand_future);
if let Err(err) = result {
eprintln!("{}: {}", colors::red_bold("error"), err.to_string());
std::process::exit(1);