2019-06-10 15:38:25 +03:00
|
|
|
extern crate melib;
|
2020-02-04 15:52:12 +02:00
|
|
|
use melib::Result;
|
2019-06-10 15:38:25 +03:00
|
|
|
use melib::*;
|
|
|
|
|
2020-02-04 15:52:12 +02:00
|
|
|
/// Parses e-mail from files and prints the debug information of the parsed `Envelope`
|
|
|
|
///
|
|
|
|
/// # Example invocation
|
|
|
|
/// ```sh
|
|
|
|
/// ./emailparse /path/to/email [/path/to/email2 /path/to/email3 ..]"
|
|
|
|
/// ```
|
2019-06-10 15:38:25 +03:00
|
|
|
|
|
|
|
fn main() -> Result<()> {
|
2020-02-04 15:52:12 +02:00
|
|
|
if args.len() == 1 {
|
|
|
|
eprintln!("Usage: ./emailparse /path/to/email [/path/to/email2 /path/to/email3 ..]");
|
|
|
|
std::process::exit(1);
|
|
|
|
}
|
|
|
|
|
2019-06-10 15:38:25 +03:00
|
|
|
for i in std::env::args().skip(1) {
|
2020-02-04 15:52:12 +02:00
|
|
|
println!("Path is {}", i);
|
2019-06-10 15:38:25 +03:00
|
|
|
let filename = std::path::PathBuf::from(i);
|
|
|
|
|
2020-02-04 15:52:12 +02:00
|
|
|
if filename.exists() && filename.is_file() {
|
|
|
|
let buffer = std::fs::read_to_string(&filename)
|
|
|
|
.expect(&format!("Something went wrong reading the file {}", i,));
|
2019-10-04 19:35:40 +03:00
|
|
|
let env = Envelope::from_bytes(&buffer.as_bytes(), None).expect("Couldn't parse email");
|
2020-02-04 15:52:12 +02:00
|
|
|
println!("Env is {:#?}", env);
|
|
|
|
println!("{:?}", env.body_bytes(buffer.as_bytes()));
|
2019-06-10 15:38:25 +03:00
|
|
|
} else {
|
2020-02-04 15:52:12 +02:00
|
|
|
println!("{} is not a valid file.", i);
|
2019-06-10 15:38:25 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
Ok(())
|
|
|
|
}
|