diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-05-16 13:54:38 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-05-18 07:26:47 -0300 |
| commit | a009441097c607e25b7b0ab9dff867d61d5a1e24 (patch) | |
| tree | 7be8d603b18c355a757f6057340689b9c0aca83a | |
| parent | adfc3185eefa83ad6cc6f565ed7cf46e03defd3f (diff) | |
| download | mullvadvpn-a009441097c607e25b7b0ab9dff867d61d5a1e24.tar.xz mullvadvpn-a009441097c607e25b7b0ab9dff867d61d5a1e24.zip | |
Refactor to only use `ProblemReport::add_logs`
| -rw-r--r-- | mullvad-daemon/src/bin/problem-report.rs | 22 |
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<()> { |
