MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / needs_upgrade

Function needs_upgrade

atomic-remote/src/version.rs:18–31  ·  view source on GitHub ↗

Check if `current` version is less than `required` version. Performs a simple major.minor.patch numeric comparison. Missing parts default to 0 (e.g. `"1.2"` is treated as `"1.2.0"`). Returns `true` if `current < required` (upgrade needed). Returns `false` if `current >= required` or if either version string cannot be parsed — this avoids spurious warnings on dev or pre-release version strings.

(current: &str, required: &str)

Source from the content-addressed store, hash-verified

16/// cannot be parsed — this avoids spurious warnings on dev or pre-release
17/// version strings.
18pub fn needs_upgrade(current: &str, required: &str) -> bool {
19 fn parse_version(v: &str) -> Option<(u32, u32, u32)> {
20 let mut parts = v.trim().splitn(4, '.');
21 let major = parts.next()?.parse::<u32>().ok()?;
22 let minor = parts.next().unwrap_or("0").parse::<u32>().ok()?;
23 let patch = parts.next().unwrap_or("0").parse::<u32>().ok()?;
24 Some((major, minor, patch))
25 }
26
27 match (parse_version(current), parse_version(required)) {
28 (Some(cur), Some(req)) => cur < req,
29 _ => false,
30 }
31}
32
33/// Check the `X-Atomic-Min-Version` response header and warn if the
34/// current CLI version is older than the server's minimum requirement.

Callers 1

check_min_version_headerFunction · 0.85

Calls 1

parse_versionFunction · 0.70

Tested by

no test coverage detected