diff options
| author | Emīls Piņķis <emils@mullvad.net> | 2021-02-16 12:03:45 +0000 |
|---|---|---|
| committer | Emīls Piņķis <emils@mullvad.net> | 2021-02-16 13:18:05 +0000 |
| commit | c5315bdde897c3a6226fdf0198a6a5c8b7f09a17 (patch) | |
| tree | e8365a24ec8f6bd95ea6989d7fef60baf29f4302 /talpid-platform-metadata | |
| parent | fe68f2dd9d36ae7a6574eecee144c2efc6af5ad0 (diff) | |
| download | mullvadvpn-c5315bdde897c3a6226fdf0198a6a5c8b7f09a17.tar.xz mullvadvpn-c5315bdde897c3a6226fdf0198a6a5c8b7f09a17.zip | |
Drop the patch version from short version
Diffstat (limited to 'talpid-platform-metadata')
| -rw-r--r-- | talpid-platform-metadata/src/macos.rs | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/talpid-platform-metadata/src/macos.rs b/talpid-platform-metadata/src/macos.rs index 9ee496adb1..39d05b8b1e 100644 --- a/talpid-platform-metadata/src/macos.rs +++ b/talpid-platform-metadata/src/macos.rs @@ -2,17 +2,31 @@ mod command; use command::command_stdout_lossy; pub fn version() -> String { - format!( - "macOS {}", - command_stdout_lossy("sw_vers", &["-productVersion"]) - .unwrap_or(String::from("[Failed to detect version]")) - ) + let version = run_sw_vers().unwrap_or(String::from("N/A")); + format!("macOS {}", version) } + pub fn short_version() -> String { - version() + let version = run_sw_vers() + .and_then(parse_short_version_output) + .map(|(major, minor)| format!("{}.{}", major, minor)) + .unwrap_or(String::from("N/A")); + format!("macOS {}", version) } pub fn extra_metadata() -> impl Iterator<Item = (String, String)> { std::iter::empty() } + +/// Outputs a string in a format `$major.$minor.$patch`, e.g. `11.0.1` +fn run_sw_vers() -> Option<String> { + command_stdout_lossy("sw_vers", &["-productVersion"]) +} + +fn parse_short_version_output(output: String) -> Option<(u32, u32)> { + let mut parts = output.split('.'); + let major = parts.next()?.parse().ok()?; + let minor = parts.next()?.parse().ok()?; + Some((major, minor)) +} |
