diff options
| author | Daniel <kingdread@gmx.de> | 2020-04-21 14:34:08 +0200 | 
|---|---|---|
| committer | Daniel <kingdread@gmx.de> | 2020-04-21 14:34:08 +0200 | 
| commit | ab909d2f3a0a59ae1b9a169ec79d4e9ffeddd1e1 (patch) | |
| tree | 37d5360b3ca2056609bbad3497103b1437b25107 /src | |
| parent | 0a27adbc0bf3bbbf87fea9e55c00c38f61d55058 (diff) | |
| download | raidgrep-ab909d2f3a0a59ae1b9a169ec79d4e9ffeddd1e1.tar.gz raidgrep-ab909d2f3a0a59ae1b9a169ec79d4e9ffeddd1e1.tar.bz2 raidgrep-ab909d2f3a0a59ae1b9a169ec79d4e9ffeddd1e1.zip | |
use readline/rustyline instead of stdin.read_line
This gives us a history, nicer editing capabilities and the possibility
to add completion in the future.
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 10 | 
1 files changed, 4 insertions, 6 deletions
| diff --git a/src/main.rs b/src/main.rs index ff882e5..b6633ac 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ use chrono::{NaiveDateTime, Weekday};  use colored::Colorize;  use log::debug;  use num_traits::cast::FromPrimitive; +use rustyline::{error::ReadlineError, Editor};  use structopt::StructOpt;  use walkdir::{DirEntry, WalkDir}; @@ -231,13 +232,10 @@ fn run() -> Result<()> {  }  fn repl(opt: &Opt) -> Result<()> { -    let stdin = std::io::stdin(); +    let mut rl = Editor::<()>::new();      loop { -        print!("Query> "); -        std::io::stdout().flush()?; -        let mut line = String::new(); -        stdin.read_line(&mut line)?; -        let line = line.trim(); +        let line = rl.readline("Query> ")?; +        rl.add_history_entry(&line);          let parsed = build_filter(&line);          match parsed {              Ok(filter) => grep(&opt, &*filter)?, | 
