Use semver crate instead of regex

This commit is contained in:
Félix Saparelli 2022-04-29 09:23:22 +12:00
parent a87fa59b70
commit 247292ceb2
3 changed files with 6 additions and 8 deletions

5
Cargo.lock generated
View file

@ -134,7 +134,6 @@ dependencies = [
"env_logger", "env_logger",
"flate2", "flate2",
"log", "log",
"regex",
"reqwest", "reqwest",
"semver", "semver",
"serde", "serde",
@ -1357,9 +1356,9 @@ dependencies = [
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.5" version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4"
dependencies = [ dependencies = [
"serde", "serde",
] ]

View file

@ -37,12 +37,11 @@ strum_macros = "0.23.1"
strum = "0.23.0" strum = "0.23.0"
dirs = "4.0.0" dirs = "4.0.0"
crates-index = "0.18.5" crates-index = "0.18.5"
semver = "1.0.5" semver = "1.0.7"
xz2 = "0.1.6" xz2 = "0.1.6"
zip = "0.5.13" zip = "0.5.13"
async-trait = "0.1.52" async-trait = "0.1.52"
url = "2.2.2" url = "2.2.2"
regex = "1.5.5"
[dev-dependencies] [dev-dependencies]
env_logger = "0.9.0" env_logger = "0.9.0"

View file

@ -1,4 +1,4 @@
use std::path::PathBuf; use std::{path::PathBuf, str::FromStr};
use log::{debug, error, info, warn, LevelFilter}; use log::{debug, error, info, warn, LevelFilter};
use simplelog::{ColorChoice, ConfigBuilder, TermLogger, TerminalMode}; 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 manifest = load_manifest_path(manifest_path.join("Cargo.toml"))?;
let package = manifest.package.unwrap(); let package = manifest.package.unwrap();
let plain_version_rx = regex::Regex::new(r"^\d+[.]\d+[.]\d+(-\w+([.]\d+)?)?$").unwrap(); let is_plain_version = semver::Version::from_str(&opts.version).is_ok();
if plain_version_rx.is_match(&opts.version) && package.version != opts.version { if is_plain_version && package.version != opts.version {
warn!( warn!(
"You specified `--version {o}` but the package resolved that to '{p}', use `={o}` if you want an exact match", "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 o=opts.version, p=package.version