summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-05-16 13:54:38 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-05-18 07:26:47 -0300
commita009441097c607e25b7b0ab9dff867d61d5a1e24 (patch)
tree7be8d603b18c355a757f6057340689b9c0aca83a
parentadfc3185eefa83ad6cc6f565ed7cf46e03defd3f (diff)
downloadmullvadvpn-a009441097c607e25b7b0ab9dff867d61d5a1e24.tar.xz
mullvadvpn-a009441097c607e25b7b0ab9dff867d61d5a1e24.zip
Refactor to only use `ProblemReport::add_logs`
-rw-r--r--mullvad-daemon/src/bin/problem-report.rs22
1 files changed, 9 insertions, 13 deletions
diff --git a/mullvad-daemon/src/bin/problem-report.rs b/mullvad-daemon/src/bin/problem-report.rs
index de36230216..06d0fe853a 100644
--- a/mullvad-daemon/src/bin/problem-report.rs
+++ b/mullvad-daemon/src/bin/problem-report.rs
@@ -192,29 +192,25 @@ fn collect_report(
) -> Result<()> {
let mut problem_report = ProblemReport::new(redact_custom_strings);
- add_logs_from_log_directory(&mut problem_report)?;
-
+ problem_report.add_logs(logs_from_log_directory()?);
problem_report.add_logs(extra_logs);
write_problem_report(&output_path, problem_report)
.chain_err(|| ErrorKind::WriteReportError(output_path.to_path_buf()))
}
-fn add_logs_from_log_directory(problem_report: &mut ProblemReport) -> Result<()> {
+fn logs_from_log_directory() -> Result<impl Iterator<Item = PathBuf>> {
let log_dir = &*LOG_DIRECTORY;
- let dir_entries = fs::read_dir(&log_dir).chain_err(|| ErrorKind::LogDirError(log_dir.clone()))?;
- let log_extension = Some(OsStr::new("log"));
+ let dir_entries: Vec<_> = fs::read_dir(&log_dir)
+ .and_then(|entries| entries.collect())
+ .chain_err(|| ErrorKind::LogDirError(log_dir.clone()))?;
- for dir_entry in dir_entries {
- let file = dir_entry.chain_err(|| ErrorKind::LogDirError(log_dir.clone()))?;
- let file_path = file.path();
+ let files = dir_entries.into_iter().map(|dir_entry| dir_entry.path());
- if file_path.extension() == log_extension {
- problem_report.add_log(&file_path);
- }
- }
+ let log_extension = Some(OsStr::new("log"));
+ let log_files = files.filter(move |file| file.extension() == log_extension);
- Ok(())
+ Ok(log_files)
}
fn send_problem_report(user_email: &str, user_message: &str, report_path: &Path) -> Result<()> {