Skip to content

Commit 3279584

Browse files
committed
Removed the default values for ARG_DEBUG and ARG_MUST_BE_DEFINED so they can be inherited from the environment
1 parent f2a9c3a commit 3279584

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

argument-parser.sh

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

99
argChunks=()
1010

11-
ARG_DEBUG=false
12-
ARG_MUST_BE_DEFINED=true
13-
1411
# Expand chained short form arguments, eg -aih => -a -i -h
1512
for argChunk in "$@"; do
1613

@@ -40,7 +37,7 @@ for argChunk in "$@"; do
4037
argChunks+=("$argChunk")
4138
done
4239

43-
[ $ARG_DEBUG == true ] && echo "Expanded argument list: ${argChunks[@]}"
40+
[ "$ARG_DEBUG" == true ] && echo "Expanded argument list: ${argChunks[@]}"
4441

4542
# Initialise some variables
4643
declare -A argv
@@ -65,7 +62,7 @@ argGetName() {
6562
done
6663

6764
# Check if the argument must be defined
68-
if [ $ARG_MUST_BE_DEFINED == true ]; then
65+
if [ "$ARG_MUST_BE_DEFINED" == true ]; then
6966
argUnexpected "$argChunk"
7067
exit 2
7168
fi
@@ -117,7 +114,7 @@ argParse() {
117114
# Add the argument to the arguments array
118115
argv["$argName"]=''
119116

120-
[ $ARG_DEBUG == true ] && echo "Argument (short): ${BASH_REMATCH[1]}"
117+
[ "$ARG_DEBUG" == true ] && echo "Argument (short): ${BASH_REMATCH[1]}"
121118

122119
continue;
123120
fi
@@ -140,7 +137,7 @@ argParse() {
140137
# Add the argument to the arguments array
141138
argv["$argName"]="${BASH_REMATCH[2]}"
142139

143-
[ $ARG_DEBUG == true ] && echo "Argument (long with value): ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}"
140+
[ "$ARG_DEBUG" == true ] && echo "Argument (long with value): ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}"
144141

145142
continue;
146143
fi
@@ -164,7 +161,7 @@ argParse() {
164161
# Add the argument to the arguments array
165162
argv["$argName"]=''
166163

167-
[ $ARG_DEBUG == true ] && echo "Argument (long): ${BASH_REMATCH[1]}"
164+
[ "$ARG_DEBUG" == true ] && echo "Argument (long): ${BASH_REMATCH[1]}"
168165

169166
continue;
170167
fi
@@ -184,22 +181,22 @@ argParse() {
184181
# Add the arguments value to the arguments array
185182
argv["$argName"]="$argChunk"
186183

187-
[ $ARG_DEBUG == true ] && echo "Argument Value: $argChunk"
184+
[ "$ARG_DEBUG" == true ] && echo "Argument Value: $argChunk"
188185

189186
lastWasArgument=0
190187
fi
191188
done
192189

193-
[ $ARG_DEBUG == true ] && echo "Argument array:"
194-
[ $ARG_DEBUG == true ] && for k in "${!argv[@]}"
190+
[ "$ARG_DEBUG" == true ] && echo "Argument array:"
191+
[ "$ARG_DEBUG" == true ] && for k in "${!argv[@]}"
195192
do
196193
echo "ARG: $k = ${argv[$k]}"
197194
done
198195

199196
# Add the standard argc variable containing the number of arguments
200197
argc=${#argv[@]}
201198

202-
[ $ARG_DEBUG == true ] && echo "Argument Count: $argc"
199+
[ "$ARG_DEBUG" == true ] && echo "Argument Count: $argc"
203200
}
204201

205202
# If we are accessing this script directly run the argument parser, useful for testing

0 commit comments

Comments
 (0)