From b4e400e2b14dc6699f1a4126acfbb26f3398fad9 Mon Sep 17 00:00:00 2001 From: Marco Vermeulen Date: Tue, 3 Jul 2018 23:58:48 +0100 Subject: [PATCH] Fix substring bug on update. --- src/main/bash/sdkman-update.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/bash/sdkman-update.sh b/src/main/bash/sdkman-update.sh index 765d7079..a8473585 100644 --- a/src/main/bash/sdkman-update.sh +++ b/src/main/bash/sdkman-update.sh @@ -53,17 +53,21 @@ function __sdk_update { local cached_candidates_length=${#SDKMAN_CANDIDATES_CSV} __sdkman_echo_debug "Fresh and cached candidate lengths: $fresh_candidates_length $cached_candidates_length" - local candidates_diff=$(echo ${fresh_candidates[@]} ${cached_candidates[@]} | tr ' ' '\n' | sort | uniq -u | tr '\n' ',') + local diff_candidates=$(echo ${fresh_candidates[@]} ${cached_candidates[@]} | tr ' ' '\n' | sort | uniq -u | tr '\n' ',') + local diff_len=${#diff_candidates} + local diff_endindex=$(expr $diff_len - 1) + local diff_result=$(echo $diff_candidates | cut -c 1-$diff_endindex) + if (( fresh_candidates_length > cached_candidates_length )); then echo "" - __sdkman_echo_green "Adding new candidates(s): ${candidates_diff:0:-1}" + __sdkman_echo_green "Adding new candidates(s): $diff_result" echo "$fresh_candidates_csv" > "$SDKMAN_CANDIDATES_CACHE" echo "" __sdkman_echo_yellow "Please open a new terminal now..." elif (( fresh_candidates_length < cached_candidates_length )); then echo "" - __sdkman_echo_green "Removing obsolete candidates(s): ${candidates_diff:0:-1}" + __sdkman_echo_green "Removing obsolete candidates(s): $diff_result" echo "$fresh_candidates_csv" > "$SDKMAN_CANDIDATES_CACHE" echo "" __sdkman_echo_yellow "Please open a new terminal now..."