webdriver-downloader-cli 0.5.13

Cli for webdriver download.
use std::fs;

use anyhow::{bail, Context, Result};

use crate::cli::Args;

pub(crate) fn check_driver_install_path(args: &Args) -> Result<()> {
    let parent = args
        .driver_install_path
        .parent()
        .with_context(|| "Failed to get parent directory of driver install path.")?;

    if args.mkdir {
        fs::create_dir_all(parent)
            .with_context(|| "Failed to create parent directory of driver install path.")?;
    }

    if parent.exists() {
        Ok(())
    } else {
        bail!("Failed to get parent directory of driver install path.")
    }
}

pub(crate) fn check_browser(args: &Args) -> Result<()> {
    if args.browser_path.exists() {
        Ok(())
    } else {
        bail!("Failed to find browser executable.")
    }
}

pub(crate) fn check_tries(args: &Args) -> Result<()> {
    if args.skip_verification {
        return Ok(());
    }

    if args.num_tries > 0 {
        Ok(())
    } else {
        bail!("Number of tries must be greater than 0.")
    }
}