From 96f50b34149f8ea18a56ea2ee53fb03e8912ba55 Mon Sep 17 00:00:00 2001 From: Jason Nance Date: Thu, 17 Mar 2022 17:04:59 -0500 Subject: [PATCH 1/3] Canonicalize SDKMAN_DIR --- app/views/install_beta.scala.txt | 5 +++-- app/views/install_stable.scala.txt | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/install_beta.scala.txt b/app/views/install_beta.scala.txt index 343ceb9..c8ffc32 100644 --- a/app/views/install_beta.scala.txt +++ b/app/views/install_beta.scala.txt @@ -10,10 +10,11 @@ SDKMAN_NATIVE_VERSION="@cliNativeVersion" SDKMAN_PLATFORM=$(uname) if [ -z "$SDKMAN_DIR" ]; then - SDKMAN_DIR="$HOME/.sdkman" + SDKMAN_DIR=$(readlink -f "$HOME/.sdkman") SDKMAN_DIR_RAW='$HOME/.sdkman' else SDKMAN_DIR_RAW="$SDKMAN_DIR" + SDKMAN_DIR=$(readlink -f $SDKMAN_DIR) fi # Local variables @@ -140,4 +141,4 @@ fi } -@includes.install_message(beta) \ No newline at end of file +@includes.install_message(beta) diff --git a/app/views/install_stable.scala.txt b/app/views/install_stable.scala.txt index 015dcbd..1b0e49f 100644 --- a/app/views/install_stable.scala.txt +++ b/app/views/install_stable.scala.txt @@ -9,10 +9,11 @@ SDKMAN_VERSION="@cliVersion" SDKMAN_PLATFORM=$(uname) if [ -z "$SDKMAN_DIR" ]; then - SDKMAN_DIR="$HOME/.sdkman" + SDKMAN_DIR=$(readlink -f "$HOME/.sdkman") SDKMAN_DIR_RAW='$HOME/.sdkman' else SDKMAN_DIR_RAW="$SDKMAN_DIR" + SDKMAN_DIR=$(readlink -f $SDKMAN_DIR) fi # Local variables @@ -136,4 +137,4 @@ fi } -@includes.install_message(beta) \ No newline at end of file +@includes.install_message(beta) From 5baa847fb8b295fbd6f2e92571715c918f1f8645 Mon Sep 17 00:00:00 2001 From: Jason Nance Date: Thu, 17 Mar 2022 17:12:57 -0500 Subject: [PATCH 2/3] Add check for existing file conflicting with installation location --- app/views/includes/sanity.scala.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/views/includes/sanity.scala.txt b/app/views/includes/sanity.scala.txt index 96c1b60..626a347 100644 --- a/app/views/includes/sanity.scala.txt +++ b/app/views/includes/sanity.scala.txt @@ -1,5 +1,21 @@ # Sanity checks +echo "Validating installation location..." +if [ -e "$SDKMAN_DIR" ] && [ ! -d "$SDKMAN_DIR" ]; then + echo "Cannot install to requested location." + echo "" + echo "======================================================================================================" + echo " A file of the same name as the installation directory exists." + echo " File in conflict is:" + echo "" + echo " ${SDKMAN_DIR}" + echo "" + echo " Restart after removing the existing file or choosing a different installation location." + echo "======================================================================================================" + echo "" + exit 1 +fi + echo "Looking for a previous installation of SDKMAN..." if [ -d "$SDKMAN_DIR" ]; then echo "SDKMAN found." From 7f4b79a0ef7b80bd332442be4832e29f10c42691 Mon Sep 17 00:00:00 2001 From: Jason Nance Date: Thu, 17 Mar 2022 17:14:18 -0500 Subject: [PATCH 3/3] Update install location check to recognize empty top-level directory as valid --- app/views/includes/sanity.scala.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/includes/sanity.scala.txt b/app/views/includes/sanity.scala.txt index 626a347..08d57c5 100644 --- a/app/views/includes/sanity.scala.txt +++ b/app/views/includes/sanity.scala.txt @@ -17,7 +17,7 @@ if [ -e "$SDKMAN_DIR" ] && [ ! -d "$SDKMAN_DIR" ]; then fi echo "Looking for a previous installation of SDKMAN..." -if [ -d "$SDKMAN_DIR" ]; then +if [ -d "$SDKMAN_DIR" ] && [ ! -z $(ls -A "$SDKMAN_DIR") ]; then echo "SDKMAN found." echo "" echo "======================================================================================================" @@ -100,4 +100,4 @@ else echo "" exit 1 fi -fi \ No newline at end of file +fi