Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions rust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,12 @@ Options:
Print help information
-V, --version
Print version information
--driver_ttl <TTL IN SECONDS>
--driver-ttl <TTL IN SECONDS>
Set custom TTL for driver in seconds. Default value is 86400
--browser_ttl <TTL IN SECONDS>
--browser-ttl <TTL IN SECONDS>
Set custom TTL for browser in seconds default value is 0
--clear-metadata
Delete metadata file if it exists
```

For instance, the command required to manage chromedriver is the following:
Expand Down
10 changes: 10 additions & 0 deletions rust/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ use selenium_manager::{
clear_cache, get_manager_by_browser, get_manager_by_driver, SeleniumManager,
};

use selenium_manager::metadata::clear_metadata;

/// Automated driver management for Selenium
#[derive(Parser, Debug)]
#[clap(version, about, long_about = None, help_template = "\
Expand Down Expand Up @@ -92,6 +94,10 @@ struct Cli {
/// Set default browser ttl
#[clap(long, value_parser, default_value_t = TTL_BROWSERS_SEC)]
browser_ttl: u64,

/// Clear metadata file
#[clap(long)]
clear_metadata: bool,
}

fn main() -> Result<(), Box<dyn Error>> {
Expand All @@ -102,6 +108,10 @@ fn main() -> Result<(), Box<dyn Error>> {
clear_cache(&log);
}

if cli.clear_metadata {
clear_metadata(&log)
}

let browser_name: String = cli.browser.unwrap_or_default();
let driver_name: String = cli.driver.unwrap_or_default();

Expand Down
10 changes: 10 additions & 0 deletions rust/src/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,13 @@ pub fn write_metadata(metadata: &Metadata, log: &Logger) {
)
.unwrap();
}

pub fn clear_metadata(log: &Logger){
let metadata_path = get_metadata_path();
log.trace(format!("Deleting metadata file {}", metadata_path.display()));
match fs::remove_file(metadata_path){
Ok(()) => log.trace("Metadata file was deleted".to_string()),
Err(err) => log.warn(
format!("Metadata file deleting invoked an error: {}",err)),
}
}