@@ -7,7 +7,8 @@ regexArgLong='^--([a-zA-Z0-9\-]{2,})$'
77regexArgLongWithValue=' ^--([a-zA-Z0-9\-]{2,})=(.*)$'
88
99regexArgName=" ^([^= \-]+)"
10- regexArgDefault=' ^([^=]+)=(.*) -'
10+ regexArgDefault=' ^[^= \-]+=(.+)? -'
11+ regexArgDesc=' ^.* - (.*)'
1112
1213# Initialise some variables
1314declare -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