Skip to content

Commit 9a71696

Browse files
committed
feat prepare_jdks.sh: cache sdk ls by prepare_jdks::_sdkman_ls_java_content
1 parent 4c743bf commit 9a71696

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

lib/prepare_jdks.sh

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,29 +55,35 @@ prepare_jdks::load_sdkman() {
5555
fi
5656
}
5757

58+
prepare_jdks::_sdkman_ls_java_content() {
59+
[ -n "${_PREPARE_JDKS_SDKMAN_LS_JAVA_CONTENT:-}" ] && echo "$_PREPARE_JDKS_SDKMAN_LS_JAVA_CONTENT"
60+
61+
_PREPARE_JDKS_SDKMAN_LS_JAVA_CONTENT=$(
62+
cu::loose_run sdk ls java | sed -n '/^ Vendor/,/^===========/p'
63+
)
64+
echo "$_PREPARE_JDKS_SDKMAN_LS_JAVA_CONTENT"
65+
}
66+
5867
prepare_jdks::ls_java() {
5968
prepare_jdks::load_sdkman
6069

61-
cu::loose_run cu::log_then_run sdk ls java | sed -n '/^ Vendor/,/^===========/p'
70+
cu::blue_echo "sdk ls java:"
71+
prepare_jdks::_sdkman_ls_java_content
6272
}
6373

6474
prepare_jdks::_set_available_jdk_versions_of_sdkman() {
6575
prepare_jdks::load_sdkman
6676

67-
local sdk_ls_output
68-
sdk_ls_output=$(cu::loose_run sdk ls java | sed -rn '/^-----------/,/^==========/p')
69-
70-
local line
71-
7277
# Prefer mapfile or read -a to split command output (or quote to avoid splitting).
7378
# https://github.com/koalaman/shellcheck/wiki/SC2207
7479
#
7580
# outputs multiple lines, each of which should be an element
7681
PREPARE_JDKS_AVAILABLE_JDK_VERSIONS_OF_SDKMAN=()
82+
local line
7783
while IFS='' read -r line; do
7884
PREPARE_JDKS_AVAILABLE_JDK_VERSIONS_OF_SDKMAN+=("$line")
7985
done < <(
80-
echo "$sdk_ls_output" |
86+
prepare_jdks::_sdkman_ls_java_content |
8187
awk -F'[ \\t]*\\|[ \\t]*' '/\|/ {print $NF}' |
8288
sort -V
8389
)
@@ -86,7 +92,7 @@ prepare_jdks::_set_available_jdk_versions_of_sdkman() {
8692
while IFS='' read -r line; do
8793
PREPARE_JDKS_AVAILABLE_REMOTE_JDK_VERSIONS_OF_SDKMAN+=("$line")
8894
done < <(
89-
echo "$sdk_ls_output" |
95+
prepare_jdks::_sdkman_ls_java_content |
9096
awk -F'[ \\t]*\\|[ \\t]*' '/\|/ && $5 !~ /^local/ {print $NF}' |
9197
sort -V
9298
)

0 commit comments

Comments
 (0)