Continue with output after "is directory"-error

This commit is contained in:
sharkdp 2018-10-11 21:54:19 +02:00
parent eee7e5a575
commit 278bde5cee
2 changed files with 33 additions and 13 deletions

View File

@ -26,20 +26,30 @@ impl<'b> Controller<'b> {
let stdin = io::stdin();
for input_file in &self.config.files {
let mut reader = input_file.get_reader(&stdin)?;
match input_file.get_reader(&stdin) {
Err(error) => {
handle_error(&error);
no_errors = false;
}
Ok(mut reader) => {
let result = if self.config.loop_through {
let mut printer = SimplePrinter::new();
self.print_file(reader, &mut printer, writer, *input_file)
} else {
let mut printer = InteractivePrinter::new(
&self.config,
&self.assets,
*input_file,
&mut reader,
);
self.print_file(reader, &mut printer, writer, *input_file)
};
let result = if self.config.loop_through {
let mut printer = SimplePrinter::new();
self.print_file(reader, &mut printer, writer, *input_file)
} else {
let mut printer =
InteractivePrinter::new(&self.config, &self.assets, *input_file, &mut reader);
self.print_file(reader, &mut printer, writer, *input_file)
};
if let Err(error) = result {
handle_error(&error);
no_errors = false;
if let Err(error) = result {
handle_error(&error);
no_errors = false;
}
}
}
}

View File

@ -102,3 +102,13 @@ fn fail_non_existing() {
fn fail_directory() {
bat().arg("sub_directory").assert().failure();
}
#[test]
fn do_not_exit_directory() {
bat()
.arg("sub_directory")
.arg("test.txt")
.assert()
.stdout("hello world\n")
.failure();
}