summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index b3bdc29..d6c7c50 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,5 +1,7 @@
+use regex::Regex;
use std::fs::File;
use std::io::{self, BufRead, BufReader, Read, Write};
+use std::process;
use structopt::StructOpt;
mod choice;
@@ -18,12 +20,22 @@ fn main() {
let lock = stdout.lock();
let mut handle = io::BufWriter::new(lock);
+ let re = Regex::new(match &opt.field_separator {
+ Some(s) => s,
+ None => "[[:space:]]",
+ })
+ .unwrap_or_else(|e| {
+ eprintln!("Failed to compile regular expression: {}", e);
+ // Exit code of 1 means failed to compile field_separator regex
+ process::exit(1);
+ });
+
let lines = buf.lines();
for line in lines {
match line {
Ok(l) => {
for choice in &opt.choice {
- choice.print_choice(&l, &opt, &mut handle);
+ choice.print_choice(&l, &opt, &re, &mut handle);
}
writeln!(handle, "");
}