@@ -304,9 +304,7 @@ function generate_ide_version_list_array()
304
304
ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY=" $baseIDEversionArray "
305
305
306
306
else
307
- # Start the array
308
- ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY=" $ARDUINO_CI_SCRIPT_IDE_VERSION_LIST_ARRAY_DECLARATION " ' ('
309
-
307
+ local rawIDElist
310
308
local -r IDEversionListRegex=" \("
311
309
if [[ " $startIDEversion " =~ $IDEversionListRegex ]]; then
312
310
# IDE versions list was supplied
@@ -322,12 +320,12 @@ function generate_ide_version_list_array()
322
320
IDEversion=" $ARDUINO_CI_SCRIPT_DETERMINED_NEWEST_IDE_VERSION "
323
321
fi
324
322
# Add the version to the array
325
- ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY =" ${ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY } " ' "' " $IDEversion " ' "'
323
+ rawIDElist =" ${rawIDElist } " ' "' " $IDEversion " ' "'
326
324
done
327
325
328
326
elif [[ " $endIDEversion " == " " ]]; then
329
327
# Only a single version was specified
330
- ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY =" $ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY " ' "' " $startIDEversion " ' "'
328
+ rawIDElist =" $rawIDElist " ' "' " $startIDEversion " ' "'
331
329
332
330
else
333
331
# A version range was specified
@@ -341,7 +339,7 @@ function generate_ide_version_list_array()
341
339
342
340
if [[ " $listIsStarted " == " true" ]]; then
343
341
# Add the version to the list
344
- ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY =" ${ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY } " ' "' " $IDEversion " ' "'
342
+ rawIDElist =" ${rawIDElist } " ' "' " $IDEversion " ' "'
345
343
fi
346
344
347
345
if [[ " $IDEversion " == " $endIDEversion " ]]; then
@@ -351,7 +349,18 @@ function generate_ide_version_list_array()
351
349
done
352
350
fi
353
351
354
- # Finish the list
352
+ # Turn the raw IDE version list into an array
353
+ declare -a -r rawIDElistArray=" (${rawIDElist} )"
354
+
355
+ # Remove duplicates from list https://stackoverflow.com/a/13648438
356
+ # shellcheck disable=SC2207
357
+ readonly local uniqueIDElistArray=($( echo " ${rawIDElistArray[@]} " | tr ' ' ' \n' | sort -u | tr ' \n' ' ' ) )
358
+
359
+ # Generate ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY
360
+ ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY=" $ARDUINO_CI_SCRIPT_IDE_VERSION_LIST_ARRAY_DECLARATION " ' ('
361
+ for uniqueIDElistArrayIndex in " ${! uniqueIDElistArray[@]} " ; do
362
+ ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY=" ${ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY} " ' "' " ${uniqueIDElistArray[$uniqueIDElistArrayIndex]} " ' "'
363
+ done
355
364
ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY=" $ARDUINO_CI_SCRIPT_GENERATED_IDE_VERSION_LIST_ARRAY " ' )'
356
365
fi
357
366
}
0 commit comments