diff --git a/Cargo.toml b/Cargo.toml index 35b4231..12058e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,5 @@ ureq = { version = "*", features = ["cookies"] } codegen-units = 1 lto = true opt-level = "z" -panic = "abort" strip = true diff --git a/src/main.rs b/src/main.rs index ac14f51..56ca5d9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,7 +30,9 @@ fn get_link(agent: ureq::Agent) -> Option { fn main() { let mut args = std::env::args().skip(1); - let to: String = args.next().expect("Provide To: on the command line"); + let to: String = args + .next() + .expect("Usage: MS_USER=... MS_PASS=... msme [bcc-address]..."); let bcc: Vec = args.collect(); let username = std::env::var("MS_USER").expect("Please set MS_USER envvar"); @@ -55,6 +57,11 @@ fn main() { .rsplit_once('/') .expect("Couldn't parse filename from link"); + if std::path::Path::new(filename).exists() { + println!("We already have {}, skipping", filename); + return; + } + let mut buf: Vec = vec![]; { println!("Downloading PDF..."); @@ -65,8 +72,6 @@ fn main() { .into_reader() .read_to_end(&mut buf) // TODO: would be better to stream the bytes .expect("Couldn't read bytes from server"); - - std::fs::write(filename, &buf).expect("Couldn't create file"); } println!("Sending email..."); @@ -96,5 +101,7 @@ fn main() { sendmail.wait().expect("Sendmail execution failed"); + println!("Saving file..."); + std::fs::write(filename, &buf).expect("Couldn't create file"); println!("OK!"); }