diff --git a/src/main.rs b/src/main.rs index 1eaafda..65df5bd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,17 +11,26 @@ struct Args { /// The replacement pattern. #[arg(short, long)] replace: String, + + /// The input content to search and replace. If not provided, input will be read from stdin. + #[arg(short, long)] + input: Option, } fn main() { let args = Args::parse(); - let mut input = String::new(); - match std::io::stdin().read_to_string(&mut input) { - Ok(_) => (), - Err(err) => { - eprintln!("Error reading from stdin: {}", err); - return; + let input = match args.input { + Some(input) => input, + None => { + let mut input = String::new(); + match std::io::stdin().read_to_string(&mut input) { + Ok(_) => input, + Err(err) => { + eprintln!("Error reading from stdin: {}", err); + return; + } + } } };