summaryrefslogtreecommitdiffhomepage
path: root/talpid-platform-metadata
diff options
context:
space:
mode:
authorEmīls Piņķis <emils@mullvad.net>2021-02-16 12:03:45 +0000
committerEmīls Piņķis <emils@mullvad.net>2021-02-16 13:18:05 +0000
commitc5315bdde897c3a6226fdf0198a6a5c8b7f09a17 (patch)
treee8365a24ec8f6bd95ea6989d7fef60baf29f4302 /talpid-platform-metadata
parentfe68f2dd9d36ae7a6574eecee144c2efc6af5ad0 (diff)
downloadmullvadvpn-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.rs26
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))
+}