Skip to content

Commit abc1395

Browse files
committed
Split out the argument name, description and default value regex
Corrected the default values detection in the argList method
1 parent a3e22a4 commit abc1395

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

argument-parser.sh

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ regexArgLong='^--([a-zA-Z0-9\-]{2,})$'
77
regexArgLongWithValue='^--([a-zA-Z0-9\-]{2,})=(.*)$'
88

99
regexArgName="^([^= \-]+)"
10-
regexArgDefault='^([^=]+)=(.*) -'
10+
regexArgDefault='^[^= \-]+=(.+)? -'
11+
regexArgDesc='^.* - (.*)'
1112

1213
# Initialise some variables
1314
declare -A argv;
@@ -96,19 +97,24 @@ argList() {
9697
done
9798
done <<< "$arguments"
9899

99-
regexArgName="^[^=]+=?(.+)? - (.+)"
100-
[[ "${argExpected[$arguments]}" =~ $regexArgName ]]
101-
102100
local argumentList="${argumentsPrefixed[@]}"
103-
local argumentDesc="${BASH_REMATCH[2]}"
104-
local argumentDefault="${BASH_REMATCH[1]}"
105101

106-
echo " $argumentList"
107-
if [[ "$argumentDefault" == '' ]]; then
108-
echo " $argumentDesc"
102+
# Get the arguments description
103+
[[ "${argExpected[$arguments]}" =~ $regexArgDesc ]]
104+
local argumentDesc="${BASH_REMATCH[1]}"
105+
106+
# Get the arguments default value
107+
[[ "${argExpected[$arguments]}" =~ $regexArgDefault ]]
108+
109+
# Check if a default value could be found
110+
if [[ "${BASH_REMATCH}" != "" ]]; then
111+
local argumentDefault=" (default: '${BASH_REMATCH[1]}')"
109112
else
110-
echo " $argumentDesc Default: $argumentDefault"
113+
local argumentDefault=""
111114
fi
115+
116+
echo " $argumentList"
117+
echo " $argumentDesc $argumentDefault"
112118
echo
113119
done
114120
}
@@ -140,7 +146,10 @@ argParseDefaults() {
140146
continue;
141147
fi
142148

143-
argv["${BASH_REMATCH[1]}"]="${BASH_REMATCH[2]}"
149+
# Get the name of this argument
150+
local argumentName="$(argGetName "$arguments")"
151+
152+
argv["$argumentName"]="${BASH_REMATCH[1]}"
144153
done
145154
}
146155

0 commit comments

Comments
 (0)