Skip to content

Commit 44f3517

Browse files
fix(container-pull): use die() in resolve_version_channel for cleaner error handling
Replace echo-to-stderr + return 1 with die() calls, and remove the set +e / CHANNEL_STATUS boilerplate in the caller. die() prints to stderr (not captured by $()) and exit 1 propagates via set -e.
1 parent 60b2eaf commit 44f3517

1 file changed

Lines changed: 11 additions & 21 deletions

File tree

bash/containers/falcon-container-sensor-pull/falcon-container-sensor-pull.sh

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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
928922
fi
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.
933928
RESOLVED_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
942932
LATESTSENSOR=$(match_sensor_version "$RESOLVED_VERSION")
943933
set -e # Re-enable exit-on-error
944934

0 commit comments

Comments
 (0)