File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -326,12 +326,15 @@ if [ ! -d "${SDKMAN_DIR}" ]; then
326326 fi
327327 curl -sSL " https://get.sdkman.io?rcupdate=false" | bash
328328 if [ -n " ${SDKMAN_SERVICE_MIRROR:- } " ] && [ -f " ${SDKMAN_DIR} /etc/config" ]; then
329- sdkman_service_mirror_escaped=" $( printf ' %s\n' " ${SDKMAN_SERVICE_MIRROR} " | sed ' s/[&|\\]/\\&/g' ) "
330- if grep -q " ^sdkman_api=" " ${SDKMAN_DIR} /etc/config" ; then
331- sed -i " s|^sdkman_api=.*|sdkman_api=${sdkman_service_mirror_escaped} |" " ${SDKMAN_DIR} /etc/config"
332- else
333- echo " sdkman_api=${SDKMAN_SERVICE_MIRROR} " >> " ${SDKMAN_DIR} /etc/config"
334- fi
329+ sdkman_config_tmp=" $( mktemp) "
330+ awk -v api=" ${SDKMAN_SERVICE_MIRROR} " '
331+ BEGIN { updated=0 }
332+ /^sdkman_api=/ { print "sdkman_api=" api; updated=1; next }
333+ { print }
334+ END { if (updated == 0) print "sdkman_api=" api }
335+ ' " ${SDKMAN_DIR} /etc/config" > " ${sdkman_config_tmp} "
336+ cat " ${sdkman_config_tmp} " > " ${SDKMAN_DIR} /etc/config"
337+ rm -f " ${sdkman_config_tmp} "
335338 fi
336339 # For RHEL 8 systems, also disable native CLI in config file and remove native binaries
337340 if [ " ${ADJUSTED_ID} " = " rhel" ] && [ " ${MAJOR_VERSION_ID} " = " 8" ]; then
Original file line number Diff line number Diff line change @@ -328,6 +328,15 @@ set_rvm_install_args() {
328328 fi
329329}
330330
331+ validate_mirror_url () {
332+ local mirror_name=" $1 "
333+ local mirror_url=" $2 "
334+ if [ -n " ${mirror_url} " ] && [[ ! " ${mirror_url} " =~ ^https? :// ]]; then
335+ echo " (!) ${mirror_name} must start with http:// or https://"
336+ exit 1
337+ fi
338+ }
339+
331340run_rvm_installer () {
332341 local install_args=" $1 "
333342 if [ -n " ${RVM_INSTALL_MIRROR:- } " ]; then
376385 echo " (!) Mirror values must not contain newlines."
377386 exit 1
378387 fi
388+ validate_mirror_url " RUBY_SOURCE_MIRROR" " ${RUBY_SOURCE_MIRROR:- } "
389+ validate_mirror_url " RUBY_BINARIES_MIRROR" " ${RUBY_BINARIES_MIRROR:- } "
379390 if [ -n " ${RUBY_SOURCE_MIRROR:- } " ] && ! grep -Fqx " rvm_rubies_url=${RUBY_SOURCE_MIRROR} " /etc/rvmrc 2> /dev/null; then
380391 echo " rvm_rubies_url=${RUBY_SOURCE_MIRROR} " >> /etc/rvmrc
381392 fi
You can’t perform that action at this time.
0 commit comments