use ammonia::Builder; | |
use std::env; | |
use std::fs::File; | |
use std::io::{self, Read, Write}; | |
use std::process; | |
fn run() -> io::Result<()> { | |
let input = env::args().nth(1).unwrap_or_else(|| String::from("-")); | |
let output = env::args().nth(2).unwrap_or_else(|| String::from("-")); | |
let mut rdr: Box<dyn Read> = if input == "-" { | |
Box::new(io::stdin()) | |
} else { | |
Box::new(File::open(input)?) | |
}; | |
let mut wrt: Box<dyn Write> = if output == "-" { | |
Box::new(io::stdout()) | |
} else { | |
Box::new(File::create(output)?) | |
}; | |
Builder::new() | |
.clean_from_reader(&mut rdr)? | |
.write_to(&mut wrt)?; | |
Ok(()) | |
} | |
fn main() { | |
env_logger::init(); | |
if let Err(ref e) = run() { | |
println!("error: {}", e); | |
process::exit(1); | |
} | |
} |