summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-platform-metadata/src/android.rs10
-rw-r--r--mullvad-platform-metadata/src/linux.rs22
2 files changed, 29 insertions, 3 deletions
diff --git a/mullvad-platform-metadata/src/android.rs b/mullvad-platform-metadata/src/android.rs
index 5573586808..90d638772e 100644
--- a/mullvad-platform-metadata/src/android.rs
+++ b/mullvad-platform-metadata/src/android.rs
@@ -4,7 +4,7 @@ mod command;
use command::command_stdout_lossy;
pub fn version() -> String {
- let version = get_prop("ro.build.version.release").unwrap_or_else(|| "N/A".to_owned());
+ let version = os_version();
let api_level = get_prop("ro.build.version.sdk").unwrap_or_else(|| "N/A".to_owned());
let manufacturer =
@@ -18,7 +18,13 @@ pub fn version() -> String {
}
pub fn short_version() -> String {
- version()
+ let version = os_version();
+
+ format!("Android {}", version)
+}
+
+fn os_version() -> String {
+ get_prop("ro.build.version.release").unwrap_or_else(|| "N/A".to_owned())
}
pub fn extra_metadata() -> HashMap<String, String> {
diff --git a/mullvad-platform-metadata/src/linux.rs b/mullvad-platform-metadata/src/linux.rs
index 25c29b6a54..016fb123c3 100644
--- a/mullvad-platform-metadata/src/linux.rs
+++ b/mullvad-platform-metadata/src/linux.rs
@@ -18,7 +18,27 @@ pub fn version() -> String {
}
pub fn short_version() -> String {
- version()
+ let version = read_os_release_file_short().unwrap_or_else(|| {
+ parse_lsb_release().unwrap_or_else(|| String::from("[Failed to detect version]"))
+ });
+
+ format!("Linux {}", version)
+}
+
+fn read_os_release_file_short() -> Option<String> {
+ let mut os_release_info = rs_release::get_os_release().ok()?;
+ let os_name = os_release_info.remove("NAME");
+ let os_version_id = os_release_info.remove("VERSION_ID");
+
+ if let Some(os_name) = os_name {
+ if os_name != "NixOS" {
+ if let Some(os_version_id) = os_version_id {
+ return Some(format!("{} {}", os_name, os_version_id));
+ }
+ }
+ }
+
+ os_release_info.remove("PRETTY_NAME")
}
fn read_os_release_file() -> Result<String, Option<String>> {