mirror of
https://github.com/GyulyVGC/sniffnet.git
synced 2025-12-23 22:29:01 -05:00
Improve update check with semver
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -4734,6 +4734,7 @@ dependencies = [
|
||||
"rodio",
|
||||
"rstest",
|
||||
"rustrict",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_test",
|
||||
"serial_test",
|
||||
|
||||
@@ -57,6 +57,7 @@ splines = "5.0.0"
|
||||
clap = { version = "4.5.39", features = ["derive"] }
|
||||
tokio = { version = "1.45.1", features = ["macros"] }
|
||||
async-channel = "2.3.1"
|
||||
semver = "1.0"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
gag = "1.0.0"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
use crate::SNIFFNET_LOWERCASE;
|
||||
use crate::utils::formatted_strings::APP_VERSION;
|
||||
use crate::SNIFFNET_LOWERCASE;
|
||||
use semver::Version;
|
||||
use serde::Deserialize;
|
||||
use std::time::Duration;
|
||||
|
||||
@@ -48,23 +49,18 @@ async fn is_newer_release_available(max_retries: u8, seconds_between_retries: u8
|
||||
.name;
|
||||
latest_version = latest_version.trim().to_string();
|
||||
|
||||
// release name sample: v1.1.2
|
||||
// TODO: support versions with numbers of more than 1 digit
|
||||
let latest_version_as_bytes = latest_version.as_bytes();
|
||||
if latest_version.len() == 6
|
||||
&& latest_version.starts_with('v')
|
||||
&& char::from(latest_version_as_bytes[1]).is_numeric()
|
||||
&& char::from(latest_version_as_bytes[2]).eq(&'.')
|
||||
&& char::from(latest_version_as_bytes[3]).is_numeric()
|
||||
&& char::from(latest_version_as_bytes[4]).eq(&'.')
|
||||
&& char::from(latest_version_as_bytes[5]).is_numeric()
|
||||
{
|
||||
latest_version.remove(0);
|
||||
return if latest_version.gt(&APP_VERSION.to_string()) {
|
||||
Some(true)
|
||||
} else {
|
||||
Some(false)
|
||||
};
|
||||
// release name sample: v1.2.3
|
||||
if let Some(stripped) = latest_version.strip_prefix('v') {
|
||||
if let (Ok(latest_semver), Ok(current_semver)) = (
|
||||
Version::parse(stripped),
|
||||
Version::parse(APP_VERSION),
|
||||
) {
|
||||
return if latest_semver > current_semver {
|
||||
Some(true)
|
||||
} else {
|
||||
Some(false)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
let retries_left = max_retries - 1;
|
||||
|
||||
Reference in New Issue
Block a user