From c9bc061a9170c7ae047a84ea85fb97af3be41f21 Mon Sep 17 00:00:00 2001 From: Felipe Date: Thu, 22 Oct 2015 13:31:06 +0100 Subject: [PATCH] FEATURE #374 - Moving and symlinking candidates into new location. --- src/main/bash/install.sh | 2 ++ src/main/bash/selfupdate.sh | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/bash/install.sh b/src/main/bash/install.sh index c2407b1f..b1290fee 100755 --- a/src/main/bash/install.sh +++ b/src/main/bash/install.sh @@ -33,6 +33,7 @@ sdkman_zip_file="${sdkman_tmp_folder}/res-${SDKMAN_VERSION}.zip" sdkman_ext_folder="${SDKMAN_DIR}/ext" sdkman_etc_folder="${SDKMAN_DIR}/etc" sdkman_var_folder="${SDKMAN_DIR}/var" +sdkman_candidates_folder="${SDKMAN_DIR}/candidates" sdkman_config_file="${sdkman_etc_folder}/config" sdkman_bash_profile="${HOME}/.bash_profile" sdkman_profile="${HOME}/.profile" @@ -196,6 +197,7 @@ mkdir -p "${sdkman_stage_folder}" mkdir -p "${sdkman_ext_folder}" mkdir -p "${sdkman_etc_folder}" mkdir -p "${sdkman_var_folder}" +mkdir -p "${sdkman_candidates_folder}" echo "Getting available candidates..." SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates") diff --git a/src/main/bash/selfupdate.sh b/src/main/bash/selfupdate.sh index b2e19ab3..f1361dba 100755 --- a/src/main/bash/selfupdate.sh +++ b/src/main/bash/selfupdate.sh @@ -170,6 +170,7 @@ rm -rf "${sdkman_src_folder}" sdkman_echo_debug "Refresh directory structure..." mkdir -p "${SDKMAN_DIR}/bin" +mkdir -p "${SDKMAN_DIR}/candidates" mkdir -p "${SDKMAN_DIR}/ext" mkdir -p "${SDKMAN_DIR}/etc" mkdir -p "${SDKMAN_DIR}/src" @@ -189,8 +190,13 @@ IFS="$OLD_IFS" for candidate in "${SDKMAN_CANDIDATES[@]}"; do if [[ -n "$candidate" ]]; then - sdkman_echo_debug "Attempt removal of ${candidate} dir: ${SDKMAN_DIR}/${candidate}" - rmdir --ignore-fail-on-non-empty "${SDKMAN_DIR}/${candidate}" + if [[ -z "$(ls -A /path/to/directory)" ]]; then + sdkman_echo_debug "Attempt removal of ${candidate} dir: ${SDKMAN_DIR}/${candidate}" + rmdir --ignore-fail-on-non-empty "${SDKMAN_DIR}/${candidate}" + else + mv "${SDKMAN_DIR}/${candidate}" "${SDKMAN_DIR}/candidates/${candidate}" + ln -s "${SDKMAN_DIR}/candidates/${candidate}" "${SDKMAN_DIR}/${candidate}" + fi fi done