on master help sign in
Continue with output after "is directory"-error
commit278bde5cee57db6866a925890fac176a1af6eb0a authorsharkdp <davidpeter@web.de> dateThu 11 Oct 2018, 21:54 (8 years ago) parenteee7e5a
2 files changed+33−13
src/controller.rs+23−13 tests/integration_tests.rs+10
src/controller.rs+23−13
@@ -26,20 +26,30 @@ impl<'b> Controller<'b> {
2626 let stdin = io::stdin();
2727
2828 for input_file in &self.config.files {
29− let mut reader = input_file.get_reader(&stdin)?;
30−
31− let result = if self.config.loop_through {
32− let mut printer = SimplePrinter::new();
33− self.print_file(reader, &mut printer, writer, *input_file)
34− } else {
35− let mut printer =
36− InteractivePrinter::new(&self.config, &self.assets, *input_file, &mut reader);
37− self.print_file(reader, &mut printer, writer, *input_file)
38− };
29+ match input_file.get_reader(&stdin) {
30+ Err(error) => {
31+ handle_error(&error);
32+ no_errors = false;
33+ }
34+ Ok(mut reader) => {
35+ let result = if self.config.loop_through {
36+ let mut printer = SimplePrinter::new();
37+ self.print_file(reader, &mut printer, writer, *input_file)
38+ } else {
39+ let mut printer = InteractivePrinter::new(
40+ &self.config,
41+ &self.assets,
42+ *input_file,
43+ &mut reader,
44+ );
45+ self.print_file(reader, &mut printer, writer, *input_file)
46+ };
3947
40− if let Err(error) = result {
41− handle_error(&error);
42− no_errors = false;
48+ if let Err(error) = result {
49+ handle_error(&error);
50+ no_errors = false;
51+ }
52+ }
4353 }
4454 }
4555
tests/integration_tests.rs+10
@@ -102,3 +102,13 @@ fn fail_non_existing() {
102102fn fail_directory() {
103103 bat().arg("sub_directory").assert().failure();
104104}
105+
106+#[test]
107+fn do_not_exit_directory() {
108+ bat()
109+ .arg("sub_directory")
110+ .arg("test.txt")
111+ .assert()
112+ .stdout("hello world\n")
113+ .failure();
114+}