diff options
| author | Joursoir <chat@joursoir.net> | 2023-03-04 00:40:14 +0400 | 
|---|---|---|
| committer | Joursoir <chat@joursoir.net> | 2023-03-04 01:04:19 +0400 | 
| commit | c9894d2a0a20064bcf844899c10275498ea6a923 (patch) | |
| tree | 6c790f91afd09179ced4e943ed8e0f53a63cc3fc /src | |
| parent | 7ed5366c0bdf376eb910fed9e566a063f2c35806 (diff) | |
| download | trgrep-c9894d2a0a20064bcf844899c10275498ea6a923.tar.gz trgrep-c9894d2a0a20064bcf844899c10275498ea6a923.tar.bz2 trgrep-c9894d2a0a20064bcf844899c10275498ea6a923.zip  | |
print filenames if there're more than 1 files
Also add option to suppress the printing of filenames
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 22 | 
1 files changed, 19 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 72efe60..e17f151 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,13 +31,22 @@ struct Config {      /// Matches only whole words      #[arg(short, long)]      word_regexp: bool, + +    /// Suppresses the display of filenames +    #[arg(short = 'h', long)] +    no_filename: bool,  }  fn main() {      let mut config = Config::parse(); -    if config.files.is_empty() { -        config.files.push(String::from("-")); +    match config.files.len() { +        0 => { +            config.files.push(String::from("-")); +            config.no_filename = true; +        } +        1 => config.no_filename = true, +        _ => (),      }      if let Err(e) = run(config) { @@ -66,7 +75,14 @@ fn run(config: Config) -> Result<(), Box<dyn Error>> {              if !match_flag {                  continue;              } -            println!("{line}"); + +            let formatted_output = if !config.no_filename { +                format!("{}:{}", file, line) +            } else { +                format!("{}", line) +            }; + +            println!("{}", formatted_output);          }      }  | 
