From 9c129c6887eb109d1407a3342209c71997a98984 Mon Sep 17 00:00:00 2001 From: Eryu Guan Date: Fri, 28 Jul 2017 13:24:51 +0800 Subject: [PATCH] new: validate groups when creating new test Allow only lower case letters, digits, spaces and underscore when adding groups, give prompt if there's any not-allowed characters. Also remove redundant spaces between groups. Reviewed-by: Brian Foster Signed-off-by: Eryu Guan --- new | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/new b/new index eb7da0ff..4eacccd3 100755 --- a/new +++ b/new @@ -239,7 +239,7 @@ then while true do - echo -n "Add to group(s) [other] (? for list): " + echo -n "Add to group(s) [other] (separate by space, ? for list): " read ans [ -z "$ans" ] && ans=other if [ "X$ans" = "X?" ] @@ -254,7 +254,17 @@ then lst=`for word in $grpl; do echo $word; done | sort| uniq ` echo $lst else - break + # only allow lower cases, spaces, digits and underscore in group + inval=`echo $ans | tr -d '[:lower:][:space:][:digit:]_'` + if [ "$inval" != "" ]; then + echo "Invalid characters in group(s): $inval" + echo "Only lower cases, digits and underscore are allowed in groups, separated by space" + continue + else + # remove redundant spaces/tabs + ans=`echo "$ans" | sed 's/\s\+/ /g'` + break + fi fi done else -- 2.30.2