From 351b2acd14dab76292c0e9a684d2714454cc9956 Mon Sep 17 00:00:00 2001 From: Rune Tynan Date: Sat, 23 Jan 2021 23:03:01 -0500 Subject: [PATCH 1/2] Make bad shlex parsing a pretty error --- src/tools/jsondocck/src/main.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/tools/jsondocck/src/main.rs b/src/tools/jsondocck/src/main.rs index 29131f686a9dc..376639ced0aa6 100644 --- a/src/tools/jsondocck/src/main.rs +++ b/src/tools/jsondocck/src/main.rs @@ -149,7 +149,20 @@ fn get_commands(template: &str) -> Result, ()> { } } - let args = cap.name("args").map_or(vec![], |m| shlex::split(m.as_str()).unwrap()); + let args = cap.name("args") + .map_or(Some(vec![]), |m| shlex::split(m.as_str())); + + let args = match args { + Some(args) => args, + None => { + print_err( + &format!("Invalid arguments to shlex::split: `{}`", cap.name("args").unwrap().as_str()), + lineno + ); + errors = true; + continue; + } + }; if !cmd.validate(&args, commands.len(), lineno) { errors = true; From c37c4213543a727870ca862d25446b3c66d8e399 Mon Sep 17 00:00:00 2001 From: Rune Tynan Date: Sat, 23 Jan 2021 23:17:31 -0500 Subject: [PATCH 2/2] fmt --- src/tools/jsondocck/src/main.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tools/jsondocck/src/main.rs b/src/tools/jsondocck/src/main.rs index 376639ced0aa6..6ec292aba6495 100644 --- a/src/tools/jsondocck/src/main.rs +++ b/src/tools/jsondocck/src/main.rs @@ -149,15 +149,17 @@ fn get_commands(template: &str) -> Result, ()> { } } - let args = cap.name("args") - .map_or(Some(vec![]), |m| shlex::split(m.as_str())); + let args = cap.name("args").map_or(Some(vec![]), |m| shlex::split(m.as_str())); let args = match args { Some(args) => args, None => { print_err( - &format!("Invalid arguments to shlex::split: `{}`", cap.name("args").unwrap().as_str()), - lineno + &format!( + "Invalid arguments to shlex::split: `{}`", + cap.name("args").unwrap().as_str() + ), + lineno, ); errors = true; continue;