Revert "REMOVE ME LATER. Make Selenium Manager bail immediately"
This reverts commit f094eee731f685844e84486538a90079ea2a0ccf.
diff --git a/rust/src/main.rs b/rust/src/main.rs
index c54489a..eb28cae 100644
--- a/rust/src/main.rs
+++ b/rust/src/main.rs
@@ -135,110 +135,109 @@
}
fn main() {
- std::process::exit(1)
- // let mut cli = Cli::parse();
- // let cache_path =
- // StringKey(vec![CACHE_PATH_KEY], &cli.cache_path.unwrap_or_default()).get_value();
- //
- // let debug = cli.debug || BooleanKey("debug", false).get_value();
- // let trace = cli.trace || BooleanKey("trace", false).get_value();
- // let log = Logger::create(&cli.output, debug, trace);
- // let grid = cli.grid;
- // let mut browser_name: String = cli.browser.unwrap_or_default();
- // let mut driver_name: String = cli.driver.unwrap_or_default();
- // if browser_name.is_empty() {
- // browser_name = StringKey(vec!["browser"], "").get_value();
- // }
- // if driver_name.is_empty() {
- // driver_name = StringKey(vec!["driver"], "").get_value();
- // }
- //
- // let mut selenium_manager: Box<dyn SeleniumManager> = if !browser_name.is_empty() {
- // get_manager_by_browser(browser_name).unwrap_or_else(|err| {
- // log.error(&err);
- // flush_and_exit(DATAERR, &log, Some(err));
- // })
- // } else if !driver_name.is_empty() {
- // get_manager_by_driver(driver_name).unwrap_or_else(|err| {
- // log.error(&err);
- // flush_and_exit(DATAERR, &log, Some(err));
- // })
- // } else if grid.is_some() {
- // GridManager::new(grid.as_ref().unwrap().to_string()).unwrap_or_else(|err| {
- // log.error(&err);
- // flush_and_exit(DATAERR, &log, Some(err));
- // })
- // } else {
- // log.error("You need to specify a browser or driver");
- // flush_and_exit(DATAERR, &log, None);
- // };
- //
- // if cli.offline {
- // if cli.force_browser_download {
- // log.warn("Offline flag set, but also asked to force downloads. Honouring offline flag");
- // }
- // cli.force_browser_download = false;
- // if !cli.avoid_browser_download {
- // log.debug("Offline flag set, but also asked not to avoid browser downloads. Honouring offline flag");
- // }
- // cli.avoid_browser_download = true;
- // }
- //
- // // Logger set first so other setters can use it
- // selenium_manager.set_logger(log);
- // selenium_manager.set_browser_version(cli.browser_version.unwrap_or_default());
- // selenium_manager.set_driver_version(cli.driver_version.unwrap_or_default());
- // selenium_manager.set_browser_path(cli.browser_path.unwrap_or_default());
- // selenium_manager.set_driver_mirror_url(cli.driver_mirror_url.unwrap_or_default());
- // selenium_manager.set_browser_mirror_url(cli.browser_mirror_url.unwrap_or_default());
- // selenium_manager.set_os(cli.os.unwrap_or_default());
- // selenium_manager.set_arch(cli.arch.unwrap_or_default());
- // selenium_manager.set_ttl(cli.ttl);
- // selenium_manager.set_force_browser_download(cli.force_browser_download);
- // selenium_manager.set_avoid_browser_download(cli.avoid_browser_download);
- // selenium_manager.set_cache_path(cache_path.clone());
- // selenium_manager.set_offline(cli.offline);
- //
- // if cli.clear_cache || BooleanKey("clear-cache", false).get_value() {
- // clear_cache(selenium_manager.get_logger(), &cache_path);
- // }
- // if cli.clear_metadata || BooleanKey("clear-metadata", false).get_value() {
- // clear_metadata(selenium_manager.get_logger(), &cache_path);
- // }
- //
- // selenium_manager
- // .set_timeout(cli.timeout)
- // .and_then(|_| selenium_manager.set_proxy(cli.proxy.unwrap_or_default()))
- // .and_then(|_| selenium_manager.setup())
- // .map(|driver_path| {
- // let log = selenium_manager.get_logger();
- // log_driver_and_browser_path(log, &driver_path, selenium_manager.get_browser_path());
- // flush_and_exit(OK, log, None);
- // })
- // .unwrap_or_else(|err| {
- // let log = selenium_manager.get_logger();
- // if let Some(best_driver_from_cache) =
- // selenium_manager.find_best_driver_from_cache().unwrap()
- // {
- // log.warn(format!(
- // "There was an error managing {} ({}); using driver found in the cache",
- // selenium_manager.get_browser_name(),
- // err
- // ));
- // log_driver_and_browser_path(
- // log,
- // &best_driver_from_cache,
- // selenium_manager.get_browser_path(),
- // );
- // flush_and_exit(OK, log, Some(err));
- // } else if selenium_manager.is_offline() {
- // log.warn(err.to_string());
- // flush_and_exit(OK, log, Some(err));
- // } else {
- // log.error(err.to_string());
- // flush_and_exit(DATAERR, log, Some(err));
- // }
- // });
+ let mut cli = Cli::parse();
+ let cache_path =
+ StringKey(vec![CACHE_PATH_KEY], &cli.cache_path.unwrap_or_default()).get_value();
+
+ let debug = cli.debug || BooleanKey("debug", false).get_value();
+ let trace = cli.trace || BooleanKey("trace", false).get_value();
+ let log = Logger::create(&cli.output, debug, trace);
+ let grid = cli.grid;
+ let mut browser_name: String = cli.browser.unwrap_or_default();
+ let mut driver_name: String = cli.driver.unwrap_or_default();
+ if browser_name.is_empty() {
+ browser_name = StringKey(vec!["browser"], "").get_value();
+ }
+ if driver_name.is_empty() {
+ driver_name = StringKey(vec!["driver"], "").get_value();
+ }
+
+ let mut selenium_manager: Box<dyn SeleniumManager> = if !browser_name.is_empty() {
+ get_manager_by_browser(browser_name).unwrap_or_else(|err| {
+ log.error(&err);
+ flush_and_exit(DATAERR, &log, Some(err));
+ })
+ } else if !driver_name.is_empty() {
+ get_manager_by_driver(driver_name).unwrap_or_else(|err| {
+ log.error(&err);
+ flush_and_exit(DATAERR, &log, Some(err));
+ })
+ } else if grid.is_some() {
+ GridManager::new(grid.as_ref().unwrap().to_string()).unwrap_or_else(|err| {
+ log.error(&err);
+ flush_and_exit(DATAERR, &log, Some(err));
+ })
+ } else {
+ log.error("You need to specify a browser or driver");
+ flush_and_exit(DATAERR, &log, None);
+ };
+
+ if cli.offline {
+ if cli.force_browser_download {
+ log.warn("Offline flag set, but also asked to force downloads. Honouring offline flag");
+ }
+ cli.force_browser_download = false;
+ if !cli.avoid_browser_download {
+ log.debug("Offline flag set, but also asked not to avoid browser downloads. Honouring offline flag");
+ }
+ cli.avoid_browser_download = true;
+ }
+
+ // Logger set first so other setters can use it
+ selenium_manager.set_logger(log);
+ selenium_manager.set_browser_version(cli.browser_version.unwrap_or_default());
+ selenium_manager.set_driver_version(cli.driver_version.unwrap_or_default());
+ selenium_manager.set_browser_path(cli.browser_path.unwrap_or_default());
+ selenium_manager.set_driver_mirror_url(cli.driver_mirror_url.unwrap_or_default());
+ selenium_manager.set_browser_mirror_url(cli.browser_mirror_url.unwrap_or_default());
+ selenium_manager.set_os(cli.os.unwrap_or_default());
+ selenium_manager.set_arch(cli.arch.unwrap_or_default());
+ selenium_manager.set_ttl(cli.ttl);
+ selenium_manager.set_force_browser_download(cli.force_browser_download);
+ selenium_manager.set_avoid_browser_download(cli.avoid_browser_download);
+ selenium_manager.set_cache_path(cache_path.clone());
+ selenium_manager.set_offline(cli.offline);
+
+ if cli.clear_cache || BooleanKey("clear-cache", false).get_value() {
+ clear_cache(selenium_manager.get_logger(), &cache_path);
+ }
+ if cli.clear_metadata || BooleanKey("clear-metadata", false).get_value() {
+ clear_metadata(selenium_manager.get_logger(), &cache_path);
+ }
+
+ selenium_manager
+ .set_timeout(cli.timeout)
+ .and_then(|_| selenium_manager.set_proxy(cli.proxy.unwrap_or_default()))
+ .and_then(|_| selenium_manager.setup())
+ .map(|driver_path| {
+ let log = selenium_manager.get_logger();
+ log_driver_and_browser_path(log, &driver_path, selenium_manager.get_browser_path());
+ flush_and_exit(OK, log, None);
+ })
+ .unwrap_or_else(|err| {
+ let log = selenium_manager.get_logger();
+ if let Some(best_driver_from_cache) =
+ selenium_manager.find_best_driver_from_cache().unwrap()
+ {
+ log.warn(format!(
+ "There was an error managing {} ({}); using driver found in the cache",
+ selenium_manager.get_browser_name(),
+ err
+ ));
+ log_driver_and_browser_path(
+ log,
+ &best_driver_from_cache,
+ selenium_manager.get_browser_path(),
+ );
+ flush_and_exit(OK, log, Some(err));
+ } else if selenium_manager.is_offline() {
+ log.warn(err.to_string());
+ flush_and_exit(OK, log, Some(err));
+ } else {
+ log.error(err.to_string());
+ flush_and_exit(DATAERR, log, Some(err));
+ }
+ });
}
fn log_driver_and_browser_path(log: &Logger, driver_path: &Path, browser_path: &str) {