diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index ff765e1..455c795 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,12 +37,20 @@ fn main() { return; } - let form_path = &opt_matches.free[0]; + let form_path = Path::new(&opt_matches.free[0]); + let form_file_prefix = form_path.file_stem().unwrap().to_str().unwrap(); + let toml_file_name = format!("{}.toml", form_file_prefix); + let toml_path = form_path.with_file_name(toml_file_name); + let output_file_name = format!("{}-filled.pdf", form_file_prefix); let mut form = Form::load(form_path).unwrap(); if opt_matches.opt_present("fill") { - fill("./f1040.toml", &mut form); + fill( + toml_path, + form_path.with_file_name(output_file_name), + &mut form, + ); return; } @@ -78,14 +86,22 @@ fn main() { let mut toml_file = OpenOptions::new() .create_new(true) .write(true) - .open("f1040.toml") + .open(toml_path) .unwrap(); toml_file.write_all(&toml::to_vec(&data).unwrap()).unwrap(); - form.save("./f1040-new.pdf").unwrap(); + form.save( + form_path.with_file_name( + format!("{}-ids.pdf", form_file_prefix) + ), + ).unwrap(); } -fn fill<P: AsRef<Path>>(data_path: P, form: &mut Form) { +fn fill<P: AsRef<Path>>( + data_path: P, + output_path: P, + form: &mut Form, +) { let mut buf = Vec::new(); let mut file = File::open(data_path).unwrap(); file.read_to_end(&mut buf).unwrap(); @@ -100,5 +116,5 @@ fn fill<P: AsRef<Path>>(data_path: P, form: &mut Form) { } } - form.save("./f1040-filled.pdf").unwrap(); + form.save(output_path).unwrap(); } |