@@ -491,8 +491,7 @@ resolve_version_channel() {
491491 n-1|n-2|lts|lts-1)
492492 all_tags=$( extract_raw_tags)
493493 if [ -z " $all_tags " ]; then
494- echo " Fatal error: No tags found for sensor type: ${SENSOR_TYPE} " >&2
495- return 1
494+ die " No tags found for sensor type: ${SENSOR_TYPE} "
496495 fi
497496 ;;
498497 * )
@@ -507,39 +506,34 @@ resolve_version_channel() {
507506 major_minor_versions=$( echo " $all_tags " | grep -v " \-LTS" | \
508507 awk -F' .' ' { print $1"."$2 }' | sort -u -V)
509508 if [ " $( echo " $major_minor_versions " | wc -l) " -lt 2 ]; then
510- echo " Fatal error: Not enough versions available for N-1. Only $( echo " $major_minor_versions " | wc -l | tr -d ' ' ) major.minor version(s) found." >&2
511- return 1
509+ die " Not enough versions available for N-1. Only $( echo " $major_minor_versions " | wc -l | tr -d ' ' ) major.minor version(s) found."
512510 fi
513511 target_version=$( echo " $major_minor_versions " | tail -2 | head -1)
514512 ;;
515513 n-2)
516514 major_minor_versions=$( echo " $all_tags " | grep -v " \-LTS" | \
517515 awk -F' .' ' { print $1"."$2 }' | sort -u -V)
518516 if [ " $( echo " $major_minor_versions " | wc -l) " -lt 3 ]; then
519- echo " Fatal error: Not enough versions available for N-2. Only $( echo " $major_minor_versions " | wc -l | tr -d ' ' ) major.minor version(s) found." >&2
520- return 1
517+ die " Not enough versions available for N-2. Only $( echo " $major_minor_versions " | wc -l | tr -d ' ' ) major.minor version(s) found."
521518 fi
522519 target_version=$( echo " $major_minor_versions " | tail -3 | head -1)
523520 ;;
524521 lts)
525522 lts_tags=$( echo " $all_tags " | grep " \-LTS" )
526523 if [ -z " $lts_tags " ]; then
527- echo " Fatal error: No LTS versions found for sensor type: ${SENSOR_TYPE} " >&2
528- return 1
524+ die " No LTS versions found for sensor type: ${SENSOR_TYPE} "
529525 fi
530526 lts_versions=$( echo " $lts_tags " | awk -F' .' ' { print $1"."$2 }' | sort -u -V)
531527 target_version=$( echo " $lts_versions " | tail -1)
532528 ;;
533529 lts-1)
534530 lts_tags=$( echo " $all_tags " | grep " \-LTS" )
535531 if [ -z " $lts_tags " ]; then
536- echo " Fatal error: No LTS versions found for sensor type: ${SENSOR_TYPE} " >&2
537- return 1
532+ die " No LTS versions found for sensor type: ${SENSOR_TYPE} "
538533 fi
539534 lts_versions=$( echo " $lts_tags " | awk -F' .' ' { print $1"."$2 }' | sort -u -V)
540535 if [ " $( echo " $lts_versions " | wc -l) " -lt 2 ]; then
541- echo " Fatal error: Not enough LTS versions available for LTS-1. Only $( echo " $lts_versions " | wc -l | tr -d ' ' ) LTS version(s) found." >&2
542- return 1
536+ die " Not enough LTS versions available for LTS-1. Only $( echo " $lts_versions " | wc -l | tr -d ' ' ) LTS version(s) found."
543537 fi
544538 target_version=$( echo " $lts_versions " | tail -2 | head -1)
545539 ;;
@@ -928,17 +922,13 @@ if [ "${ERROR}" = "true" ]; then
928922fi
929923
930924# Get latest sensor version
931- # Resolve channel keywords (latest, N-1, N-2, LTS, LTS-1) to version prefixes
932- set +e
925+ # Resolve channel keywords (latest, N-1, N-2, LTS, LTS-1) to version prefixes.
926+ # die() inside resolve_version_channel exits the subshell with code 1;
927+ # set -e (active since line 7) propagates that to the parent script.
933928RESOLVED_VERSION=$( resolve_version_channel " $SENSOR_VERSION " )
934- CHANNEL_STATUS=$?
935- set -e
936929
937- if [ $CHANNEL_STATUS -ne 0 ]; then
938- exit 1 # error message already printed to stderr by resolve_version_channel
939- fi
940-
941- set +e # Temporarily disable exit-on-error for version matching
930+ # match_sensor_version returns 1 for "no match" — a soft failure we handle below.
931+ set +e
942932LATESTSENSOR=$( match_sensor_version " $RESOLVED_VERSION " )
943933set -e # Re-enable exit-on-error
944934
0 commit comments