diff --git a/Cargo.lock b/Cargo.lock index ec4d8477..ad2838b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -134,7 +134,6 @@ dependencies = [ "env_logger", "flate2", "log", - "regex", "reqwest", "semver", "serde", @@ -1357,9 +1356,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" +checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4" dependencies = [ "serde", ] diff --git a/Cargo.toml b/Cargo.toml index e3df5211..a6e21780 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,12 +37,11 @@ strum_macros = "0.23.1" strum = "0.23.0" dirs = "4.0.0" crates-index = "0.18.5" -semver = "1.0.5" +semver = "1.0.7" xz2 = "0.1.6" zip = "0.5.13" async-trait = "0.1.52" url = "2.2.2" -regex = "1.5.5" [dev-dependencies] env_logger = "0.9.0" diff --git a/src/main.rs b/src/main.rs index b04c9973..3943b44e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::path::PathBuf; +use std::{path::PathBuf, str::FromStr}; use log::{debug, error, info, warn, LevelFilter}; use simplelog::{ColorChoice, ConfigBuilder, TermLogger, TerminalMode}; @@ -105,8 +105,8 @@ async fn main() -> Result<(), anyhow::Error> { let manifest = load_manifest_path(manifest_path.join("Cargo.toml"))?; let package = manifest.package.unwrap(); - let plain_version_rx = regex::Regex::new(r"^\d+[.]\d+[.]\d+(-\w+([.]\d+)?)?$").unwrap(); - if plain_version_rx.is_match(&opts.version) && package.version != opts.version { + let is_plain_version = semver::Version::from_str(&opts.version).is_ok(); + if is_plain_version && package.version != opts.version { warn!( "You specified `--version {o}` but the package resolved that to '{p}', use `={o}` if you want an exact match", o=opts.version, p=package.version