Skip to content

Commit 5338401

Browse files
oech3sylvestre
authored andcommitted
tee: reduce line of code
1 parent 7254f8d commit 5338401

1 file changed

Lines changed: 22 additions & 41 deletions

File tree

src/uu/tee/src/tee.rs

Lines changed: 22 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -205,31 +205,20 @@ fn process_error(
205205
writer: &NamedWriter,
206206
ignored_errors: &mut usize,
207207
) -> Result<()> {
208-
match mode {
209-
Some(OutputErrorMode::Warn) => {
210-
let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote());
211-
*ignored_errors += 1;
212-
Ok(())
213-
}
214-
Some(OutputErrorMode::WarnNoPipe) | None => {
215-
if f.kind() != ErrorKind::BrokenPipe {
216-
let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote());
217-
*ignored_errors += 1;
218-
}
219-
Ok(())
220-
}
221-
Some(OutputErrorMode::Exit) => {
222-
let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote());
223-
Err(f)
224-
}
225-
Some(OutputErrorMode::ExitNoPipe) => {
226-
if f.kind() == ErrorKind::BrokenPipe {
227-
Ok(())
228-
} else {
229-
let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote());
230-
Err(f)
231-
}
232-
}
208+
let ignore_pipe = matches!(
209+
mode,
210+
None | Some(OutputErrorMode::WarnNoPipe) | Some(OutputErrorMode::ExitNoPipe)
211+
);
212+
213+
if ignore_pipe && f.kind() == ErrorKind::BrokenPipe {
214+
return Ok(());
215+
}
216+
let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote());
217+
if let Some(OutputErrorMode::Exit | OutputErrorMode::ExitNoPipe) = mode {
218+
Err(f)
219+
} else {
220+
*ignored_errors += 1;
221+
Ok(())
233222
}
234223
}
235224

@@ -274,11 +263,7 @@ impl Write for MultiWriter {
274263
.is_ok()
275264
});
276265
self.ignored_errors += errors;
277-
if let Some(e) = aborted {
278-
Err(e)
279-
} else {
280-
Ok(())
281-
}
266+
aborted.map_or(Ok(()), Err)
282267
}
283268
}
284269

@@ -324,16 +309,12 @@ struct NamedReader {
324309

325310
impl Read for NamedReader {
326311
fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
327-
match self.inner.read(buf) {
328-
Err(f) => {
329-
let _ = writeln!(
330-
stderr(),
331-
"tee: {}",
332-
translate!("tee-error-stdin", "error" => strip_errno(&f))
333-
);
334-
Err(f)
335-
}
336-
okay => okay,
337-
}
312+
self.inner.read(buf).inspect_err(|e| {
313+
let _ = writeln!(
314+
stderr(),
315+
"tee: {}",
316+
translate!("tee-error-stdin", "error" => strip_errno(e))
317+
);
318+
})
338319
}
339320
}

0 commit comments

Comments
 (0)