From dc2b4ebc0579aab78952b35b0e2107ad2f8ee284 Mon Sep 17 00:00:00 2001 From: Robin Keller Date: Tue, 10 Sep 2019 12:00:13 -0700 Subject: [PATCH] Use the existing bash init file in Darwin to avoid accidentally overriding existing config --- app/views/install.scala.txt | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/views/install.scala.txt b/app/views/install.scala.txt index 5f939ac..730a2bb 100644 --- a/app/views/install.scala.txt +++ b/app/views/install.scala.txt @@ -39,6 +39,7 @@ sdkman_archives_folder="${SDKMAN_DIR}/archives" sdkman_candidates_folder="${SDKMAN_DIR}/candidates" sdkman_config_file="${sdkman_etc_folder}/config" sdkman_bash_profile="${HOME}/.bash_profile" +sdkman_bash_login="${HOME}/.bash_login" sdkman_profile="${HOME}/.profile" sdkman_bashrc="${HOME}/.bashrc" sdkman_zshrc="${HOME}/.zshrc" @@ -266,11 +267,22 @@ echo "$SDKMAN_VERSION" > "${SDKMAN_DIR}/var/version" if [[ $darwin == true ]]; then - touch "$sdkman_bash_profile" + # Bash only reads one of the following config files, in this order. Write to the one that the user is already using if possible. + if [[ -e "$sdkman_bash_profile" ]]; then + sdkman_init_file="$sdkman_bash_profile" + elif [[ -e "$sdkman_bash_login" ]]; then + sdkman_init_file="$sdkman_bash_login" + elif [[ -e "$sdkman_profile" ]]; then + sdkman_init_file="$sdkman_profile" + else + # Default to creating .bash_profile as it's the least likely to be overridden in the future + sdkman_init_file="$sdkman_bash_profile" + fi + touch "$sdkman_init_file" echo "Attempt update of login bash profile on OSX..." - if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bash_profile") ]]; then - echo -e "\n$sdkman_init_snippet" >> "$sdkman_bash_profile" - echo "Added sdkman init snippet to $sdkman_bash_profile" + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_init_file") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_init_file" + echo "Added sdkman init snippet to $sdkman_init_file" fi else echo "Attempt update of interactive bash profile on regular UNIX..."