summaryrefslogtreecommitdiffstats
path: root/bin/core/imag-grep/src
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-02-26 22:57:17 +0100
committerMatthias Beyer <mail@beyermatthias.de>2018-03-04 13:57:44 +0100
commit50461b839acba753cae899c137ea364649cfd5b9 (patch)
tree3c4ab618581de6f0787ee3ec67e0a682c0d21513 /bin/core/imag-grep/src
parentc18c0bbbe455119c935510bd6fb65292e97950b1 (diff)
Use output stream from Runtime::stdout()
Diffstat (limited to 'bin/core/imag-grep/src')
-rw-r--r--bin/core/imag-grep/src/main.rs21
1 files changed, 9 insertions, 12 deletions
diff --git a/bin/core/imag-grep/src/main.rs b/bin/core/imag-grep/src/main.rs
index 64220f90..1f97e4a2 100644
--- a/bin/core/imag-grep/src/main.rs
+++ b/bin/core/imag-grep/src/main.rs
@@ -44,6 +44,7 @@ use std::io::Write;
use regex::Regex;
+use libimagrt::runtime::Runtime;
use libimagrt::setup::generate_runtime_setup;
use libimagstore::store::Entry;
use libimagerror::trace::MapErrTrace;
@@ -88,15 +89,13 @@ fn main() {
.into_get_iter()
.filter_map(|res| res.map_err_trace_exit_unwrap(1))
.filter(|entry| pattern.is_match(entry.get_content()))
- .map(|entry| show(&entry, &pattern, &opts, &mut count))
+ .map(|entry| show(&rt, &entry, &pattern, &opts, &mut count))
.count();
- let mut out = ::std::io::stdout();
-
if opts.count {
- let _ = writeln!(out, "{}", count).to_exit_code().unwrap_or_exit();
+ let _ = writeln!(rt.stdout(), "{}", count).to_exit_code().unwrap_or_exit();
} else if !opts.files_with_matches {
- let _ = writeln!(out, "Processed {} files, {} matches, {} nonmatches",
+ let _ = writeln!(rt.stdout(), "Processed {} files, {} matches, {} nonmatches",
overall_count,
count,
overall_count - count)
@@ -105,24 +104,22 @@ fn main() {
}
}
-fn show(e: &Entry, re: &Regex, opts: &Options, count: &mut usize) {
- let mut out = ::std::io::stdout();
-
+fn show(rt: &Runtime, e: &Entry, re: &Regex, opts: &Options, count: &mut usize) {
if opts.files_with_matches {
- let _ = writeln!(out, "{}", e.get_location()).to_exit_code().unwrap_or_exit();
+ let _ = writeln!(rt.stdout(), "{}", e.get_location()).to_exit_code().unwrap_or_exit();
} else if opts.count {
*count += 1;
} else {
- let _ = writeln!(out, "{}:", e.get_location()).to_exit_code().unwrap_or_exit();
+ let _ = writeln!(rt.stdout(), "{}:", e.get_location()).to_exit_code().unwrap_or_exit();
for capture in re.captures_iter(e.get_content()) {
for mtch in capture.iter() {
if let Some(m) = mtch {
- let _ = writeln!(out, " '{}'", m.as_str()).to_exit_code().unwrap_or_exit();
+ let _ = writeln!(rt.stdout(), " '{}'", m.as_str()).to_exit_code().unwrap_or_exit();
}
}
}
- let _ = writeln!(out, "").to_exit_code().unwrap_or_exit();
+ let _ = writeln!(rt.stdout(), "").to_exit_code().unwrap_or_exit();
}
}