diff --git a/src/commands/preview/mod.rs b/src/commands/preview/mod.rs index dc1ca083e..74a84f457 100644 --- a/src/commands/preview/mod.rs +++ b/src/commands/preview/mod.rs @@ -34,6 +34,7 @@ pub fn preview( body: Option, livereload: bool, verbose: bool, + headless: bool, ) -> Result<(), failure::Error> { commands::build(&target)?; @@ -53,10 +54,12 @@ pub fn preview( info!("Opened websocket server on port {}", ws_port); - open_browser(&format!( + if !headless { + open_browser(&format!( "https://cloudflareworkers.com/?wrangler_session_id={0}&wrangler_ws_port={1}&hide_editor#{2}:{3}{4}", &session.to_string(), ws_port, script_id, https_str, preview_host, ))?; + } //don't do initial GET + POST with livereload as the expected behavior is unclear. @@ -70,10 +73,12 @@ pub fn preview( verbose, )?; } else { - open_browser(&format!( - "https://cloudflareworkers.com/?hide_editor#{0}:{1}{2}", - script_id, https_str, preview_host - ))?; + if !headless { + open_browser(&format!( + "https://cloudflareworkers.com/?hide_editor#{0}:{1}{2}", + script_id, https_str, preview_host + ))?; + } let cookie = format!( "__ew_fiddle_preview={}{}{}{}", diff --git a/src/main.rs b/src/main.rs index 6dcaea294..3c7abf79c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -309,6 +309,12 @@ fn run() -> Result<(), failure::Error> { "{} Preview your code temporarily on cloudflareworkers.com", emoji::MICROSCOPE )) + .arg( + Arg::with_name("headless") + .help("Don't open the browser on preview") + .long("headless") + .takes_value(false) + ) .arg( Arg::with_name("method") .help("Type of request to preview your worker with (get, post)") @@ -495,8 +501,9 @@ fn run() -> Result<(), failure::Error> { let watch = matches.is_present("watch"); let verbose = matches.is_present("verbose"); + let headless = matches.is_present("headless"); - commands::preview(target, user, method, body, watch, verbose)?; + commands::preview(target, user, method, body, watch, verbose, headless)?; } else if matches.subcommand_matches("whoami").is_some() { log::info!("Getting User settings"); let user = settings::global_user::GlobalUser::new()?; diff --git a/tests/preview.rs b/tests/preview.rs index b43ba00df..17bcd4d05 100644 --- a/tests/preview.rs +++ b/tests/preview.rs @@ -72,5 +72,5 @@ fn preview(fixture: &str) { let mut preview = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap(); preview.current_dir(utils::fixture_path(fixture)); - preview.arg("preview").assert().success(); + preview.arg("preview").arg("--headless").assert().success(); }