Skip to content

Commit 19ffbef

Browse files
authored
[rust] Use optional arguments for CLI parsing in Selenium Manager (#11421)
[rust] Use optional arguments CLI parsing for Selenium Manager
1 parent c7488c6 commit 19ffbef

2 files changed

Lines changed: 18 additions & 18 deletions

File tree

rust/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@ Selenium Manager can be executed using Cargo as follows:
1616

1717
```
1818
$ cargo run -- --help
19-
selenium-manager 1.0.0-M1
20-
Automated driver management for Selenium
19+
selenium-manager 1.0.0-M2
20+
Selenium Manager is a CLI tool that automatically manages the browser/driver infrastructure required by Selenium.
2121
2222
Usage: selenium-manager [OPTIONS]
2323
Options:
2424
-b, --browser <BROWSER>
25-
Browser name (chrome, firefox, edge, or iexplorer) [default: ]
25+
Browser name (chrome, firefox, edge, or iexplorer)
2626
-d, --driver <DRIVER>
27-
Driver name (chromedriver, geckodriver, msedgedriver, or IEDriverServer) [default: ]
27+
Driver name (chromedriver, geckodriver, msedgedriver, or IEDriverServer)
2828
-v, --driver-version <DRIVER_VERSION>
29-
Driver version (e.g., 106.0.5249.61, 0.31.0, etc.) [default: ]
29+
Driver version (e.g., 106.0.5249.61, 0.31.0, etc.)
3030
-B, --browser-version <BROWSER_VERSION>
31-
Major browser version (e.g., 105, 106, etc. Also: beta, dev, canary -or nightly- is accepted) [default: ]
31+
Major browser version (e.g., 105, 106, etc. Also: beta, dev, canary -or nightly- is accepted)
3232
-D, --debug
3333
Display DEBUG messages
3434
-T, --trace

rust/src/main.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,20 @@ use selenium_manager::{
4141
{all-args}")]
4242
struct Cli {
4343
/// Browser name (chrome, firefox, edge, or iexplorer)
44-
#[clap(short, long, value_parser, default_value = "")]
45-
browser: String,
44+
#[clap(short, long, value_parser)]
45+
browser: Option<String>,
4646

4747
/// Driver name (chromedriver, geckodriver, msedgedriver, or IEDriverServer)
48-
#[clap(short, long, value_parser, default_value = "")]
49-
driver: String,
48+
#[clap(short, long, value_parser)]
49+
driver: Option<String>,
5050

5151
/// Driver version (e.g., 106.0.5249.61, 0.31.0, etc.)
52-
#[clap(short = 'v', long, value_parser, default_value = "")]
53-
driver_version: String,
52+
#[clap(short = 'v', long, value_parser)]
53+
driver_version: Option<String>,
5454

5555
/// Major browser version (e.g., 105, 106, etc. Also: beta, dev, canary -or nightly- is accepted)
56-
#[clap(short = 'B', long, value_parser, default_value = "")]
57-
browser_version: String,
56+
#[clap(short = 'B', long, value_parser)]
57+
browser_version: Option<String>,
5858

5959
/// Display DEBUG messages
6060
#[clap(short = 'D', long)]
@@ -77,8 +77,8 @@ fn main() -> Result<(), Box<dyn Error>> {
7777
clear_cache();
7878
}
7979

80-
let browser_name: String = cli.browser;
81-
let driver_name: String = cli.driver;
80+
let browser_name: String = cli.browser.unwrap_or_default();
81+
let driver_name: String = cli.driver.unwrap_or_default();
8282

8383
let mut selenium_manager: Box<dyn SeleniumManager> = if !browser_name.is_empty() {
8484
get_manager_by_browser(browser_name).unwrap_or_else(|err| {
@@ -95,8 +95,8 @@ fn main() -> Result<(), Box<dyn Error>> {
9595
exit(DATAERR);
9696
};
9797

98-
selenium_manager.set_browser_version(cli.browser_version);
99-
selenium_manager.set_driver_version(cli.driver_version);
98+
selenium_manager.set_browser_version(cli.browser_version.unwrap_or_default());
99+
selenium_manager.set_driver_version(cli.driver_version.unwrap_or_default());
100100

101101
match selenium_manager.resolve_driver() {
102102
Ok(driver_path) => log::info!("{}", driver_path.display()),

0 commit comments

Comments
 (0)