diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2019-06-09 04:42:28 +1000 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-06-08 14:42:28 -0400 |
commit | 307e0927531025dd707a0f4dc3fd549b65598eb2 (patch) | |
tree | ad006d9b82d94b8d0f32e0bcef48eb5f1f531cc6 /cli/main.rs | |
parent | 35f879ad32bc7fddb1c20e9a4154f42c7b9b8350 (diff) |
Add 'bundle' subcommand. (#2467)
Diffstat (limited to 'cli/main.rs')
-rw-r--r-- | cli/main.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cli/main.rs b/cli/main.rs index cfce2254b..ad0374af2 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -41,6 +41,7 @@ mod tokio_write; pub mod version; pub mod worker; +use crate::compiler::bundle_async; use crate::errors::RustOrJsError; use crate::progress::Progress; use crate::state::ThreadSafeState; @@ -261,6 +262,26 @@ fn xeval_command(flags: DenoFlags, argv: Vec<String>) { tokio_util::run(main_future); } +fn bundle_command(flags: DenoFlags, argv: Vec<String>) { + let (mut _worker, state) = create_worker_and_state(flags, argv); + + let main_module = state.main_module().unwrap(); + let main_url = root_specifier_to_url(&main_module).unwrap(); + assert!(state.argv.len() >= 3); + let out_file = state.argv[2].clone(); + debug!(">>>>> bundle_async START"); + let bundle_future = bundle_async(state, main_url.to_string(), out_file) + .map_err(|e| { + debug!("diagnostics returned, exiting!"); + eprintln!("\n{}", e.to_string()); + std::process::exit(1); + }).and_then(move |_| { + debug!(">>>>> bundle_async END"); + Ok(()) + }); + tokio_util::run(bundle_future); +} + fn run_repl(flags: DenoFlags, argv: Vec<String>) { let (mut worker, _state) = create_worker_and_state(flags, argv); @@ -322,6 +343,7 @@ fn main() { }); match subcommand { + DenoSubcommand::Bundle => bundle_command(flags, argv), DenoSubcommand::Eval => eval_command(flags, argv), DenoSubcommand::Fetch => fetch_or_info_command(flags, argv, false), DenoSubcommand::Info => fetch_or_info_command(flags, argv, true), |