From 521b13211aac9e5f0c005bd0a1f804ec1e19b187 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 11 Apr 2021 17:01:48 +0200 Subject: Get PDF file path from free command line argument Add 'getopts' to parse command line arguments. Replace `--fill` argument condition with 'getopts'. Replace the hard-coded PDF file path with one from the command line argument. --- src/main.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 0577197..ff765e1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use derive_builder::Builder; +use getopts::Options; use pdf_forms::{Form, FieldType}; use serde::{Deserialize, Serialize}; @@ -27,9 +28,20 @@ struct Field<'a> { fn main() { let args: Vec = env::args().collect(); - let mut form = Form::load("./f1040.pdf").unwrap(); + let mut opts = Options::new(); + opts.optflag("", "fill", "fill in the form using a markup file"); - if args.len() == 2 && args[1] == "--fill" { + let opt_matches = opts.parse(&args[1..]).unwrap(); + + if opt_matches.free.is_empty() { + return; + } + + let form_path = &opt_matches.free[0]; + + let mut form = Form::load(form_path).unwrap(); + + if opt_matches.opt_present("fill") { fill("./f1040.toml", &mut form); return; -- cgit v1.2.3