Skip to content

Commit

Permalink
[rust] Read selenium version from clap cargo feature
Browse files Browse the repository at this point in the history
  • Loading branch information
bonigarcia committed Nov 19, 2023
1 parent 64e81e8 commit be149d7
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 6 deletions.
2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Selenium Manager is a CLI tool that automatically manages the browser/driver inf
"""

[dependencies]
clap = { version = "4.4.8", features = ["derive"] }
clap = { version = "4.4.8", features = ["derive", "cargo"] }
log = "0.4.20"
env_logger = "0.10.1"
regex = "1.10.2"
Expand Down
2 changes: 2 additions & 0 deletions rust/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ pub struct ManagerConfig {
pub force_browser_download: bool,
pub avoid_browser_download: bool,
pub language_binding: String,
pub selenium_version: String,
}

impl ManagerConfig {
Expand Down Expand Up @@ -113,6 +114,7 @@ impl ManagerConfig {
force_browser_download: BooleanKey("force-browser-download", false).get_value(),
avoid_browser_download: BooleanKey("avoid-browser-download", false).get_value(),
language_binding: StringKey(vec!["language-binding"], "").get_value(),
selenium_version: StringKey(vec!["selenium-version"], "").get_value(),
}
}
}
Expand Down
14 changes: 11 additions & 3 deletions rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -829,15 +829,13 @@ pub trait SeleniumManager {
}

fn stats(&self) {
let sm_version = env!("CARGO_PKG_VERSION");
let selenium_version = sm_version.strip_prefix(SM_BETA_LABEL).unwrap_or(sm_version);
let props = Props {
browser: self.get_browser_name().to_string(),
browser_version: self.get_browser_version().to_string(),
os: self.get_os().to_string(),
arch: self.get_arch().to_string(),
lang: self.get_language_binding().to_string(),
selenium_version: selenium_version.to_string(),
selenium_version: self.get_selenium_version().to_string(),
};
send_stats_to_plausible(self.get_http_client(), props, self.get_logger());
}
Expand Down Expand Up @@ -1422,6 +1420,16 @@ pub trait SeleniumManager {
self.get_config_mut().language_binding = language_binding;
}
}

fn get_selenium_version(&self) -> &str {
self.get_config().selenium_version.as_str()
}

fn set_selenium_version(&mut self, selenium_version: String) {
if !selenium_version.is_empty() {
self.get_config_mut().selenium_version = selenium_version;
}
}
}

// ----------------------------------------------------------
Expand Down
5 changes: 4 additions & 1 deletion rust/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ use selenium_manager::config::{BooleanKey, StringKey, CACHE_PATH_KEY};
use selenium_manager::grid::GridManager;
use selenium_manager::logger::{Logger, BROWSER_PATH, DRIVER_PATH};
use selenium_manager::metadata::clear_metadata;
use selenium_manager::REQUEST_TIMEOUT_SEC;
use selenium_manager::TTL_SEC;
use selenium_manager::{
clear_cache, get_manager_by_browser, get_manager_by_driver, SeleniumManager,
};
use selenium_manager::{REQUEST_TIMEOUT_SEC, SM_BETA_LABEL};
use std::backtrace::{Backtrace, BacktraceStatus};
use std::path::Path;
use std::process::exit;
Expand Down Expand Up @@ -203,6 +203,9 @@ fn main() {
selenium_manager.set_cache_path(cache_path.