summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2018-08-30 13:22:00 +0200
committerLinus Färnstrand <linus@mullvad.net>2018-08-30 16:20:15 +0200
commit7a99915ff1c32d75fd5806ff85d7a9f2633c39a7 (patch)
treee9f41c8ed626e0a2d23108f58f3a0d155cd776b5
parent5acd45a11ef2a8774b369e3d8f0ef6f566ea9b40 (diff)
downloadmullvadvpn-7a99915ff1c32d75fd5806ff85d7a9f2633c39a7.tar.xz
mullvadvpn-7a99915ff1c32d75fd5806ff85d7a9f2633c39a7.zip
More concise windows version format
-rw-r--r--mullvad-problem-report/src/metadata.rs30
1 files changed, 14 insertions, 16 deletions
diff --git a/mullvad-problem-report/src/metadata.rs b/mullvad-problem-report/src/metadata.rs
index 12a00560fa..6cc5338769 100644
--- a/mullvad-problem-report/src/metadata.rs
+++ b/mullvad-problem-report/src/metadata.rs
@@ -32,14 +32,13 @@ mod os {
// information from os-release is used if available, or a fallback message if
// reading from the os-release file produced
// no version information.
- let os_version = read_os_release_file().unwrap_or_else(|incomplete_info| {
+ let version = read_os_release_file().unwrap_or_else(|incomplete_info| {
parse_lsb_release().unwrap_or_else(|| {
- incomplete_info
- .unwrap_or_else(|| String::from("[Failed to detect version]"))
+ incomplete_info.unwrap_or_else(|| String::from("[Failed to detect version]"))
})
});
- format!("Linux, {}", os_version)
+ format!("Linux {}", version)
}
fn read_os_release_file() -> Result<String, Option<String>> {
@@ -96,27 +95,26 @@ mod os {
let system_info =
super::command_stdout_lossy("systeminfo", &["/FO", "LIST"]).unwrap_or_else(String::new);
- let mut os_name = None;
- let mut os_version = None;
+ let mut version = None;
+ let mut full_version = None;
for info_line in system_info.lines() {
let mut info_parts = info_line.split(":");
match info_parts.next() {
- Some("OS Name") => os_name = info_parts.next().trim(),
- Some("OS Version") => os_version = info_parts.next().trim(),
+ Some("OS Name") => {
+ version = info_parts
+ .next()
+ .map(|s| s.trim().trim_left_matches("Microsoft Windows "))
+ }
+ Some("OS Version") => full_version = info_parts.next().map(str::trim),
_ => {}
}
}
- match (os_name, os_version) {
- (None, None) => String::from("Windows [Failed to detect version]"),
- (Some(os_name), None) => os_name.to_owned(),
- (None, Some(os_version)) => format!("Windows version {}", os_version),
- (Some(os_name), Some(os_version)) => {
- format!("{} version {}", os_name, os_version)
- }
- }
+ let version = version.unwrap_or("N/A");
+ let full_version = full_version.unwrap_or("N/A");
+ format!("Windows {} ({})", version, full_version)
}
}