From 2e3968d500c5af828efb1c9ce18ea39ac14cb161 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Tue, 5 Nov 2019 11:58:37 +0800 Subject: [PATCH 1/2] Suggest to create .bash_profile if it doesn't exist --- bootstrap-haskell | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/bootstrap-haskell b/bootstrap-haskell index 7d9bf2a..9213794 100755 --- a/bootstrap-haskell +++ b/bootstrap-haskell @@ -100,29 +100,42 @@ if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then GHCUP_PROFILE_FILE="$HOME/.bashrc" elif [ -f "$HOME/.bash_profile" ] ; then GHCUP_PROFILE_FILE="$HOME/.bash_profile" + else + # most complaints we get are from mac users who + # need assistance of setting up their shell, so suggest + # to create .bash_profile, which is a good guess + GHCUP_PROFILE_FILE="$HOME/.bash_profile" fi - if [ -n "${GHCUP_PROFILE_FILE}" ] && [ -f "${GHCUP_PROFILE_FILE}" ] ; then + if [ -f "${GHCUP_PROFILE_FILE}" ] ; then printf "\\033[0;35m%s\\033[0m\\n" "" printf "\\033[0;35m%s\\033[0m\\n" "Detected \"${GHCUP_PROFILE_FILE}\" on your system..." printf "\\033[0;35m%s\\033[0m\\n" "If you want ghcup to automatically fix your \"${GHCUP_PROFILE_FILE}\" to include the required PATH variable" printf "\\033[0;35m%s\\033[0m\\n" "answer with YES, otherwise with NO and press ENTER." printf "\\033[0;35m%s\\033[0m\\n" "" - - while true; do - read -r next_answer > "${GHCUP_PROFILE_FILE}" - exit 0;; - [Nn]*) - exit 0;; - *) - echo "Please type YES or NO and press enter.";; - esac - done + elif [ -n "${BASH}" ] ; then # only suggest to create .bash_profile if we are in a bash shell + printf "\\033[0;35m%s\\033[0m\\n" "" + printf "\\033[0;35m%s\\033[0m\\n" "Detected bash shell on your system..." + printf "\\033[0;35m%s\\033[0m\\n" "If you want ghcup to automatically create \"${GHCUP_PROFILE_FILE}\" and include the required PATH variable" + printf "\\033[0;35m%s\\033[0m\\n" "answer with YES, otherwise with NO and press ENTER." + printf "\\033[0;35m%s\\033[0m\\n" "" + else + exit 0 fi + + while true; do + read -r next_answer > "${GHCUP_PROFILE_FILE}" + exit 0;; + [Nn]*) + exit 0;; + *) + echo "Please type YES or NO and press enter.";; + esac + done fi ) From d64426f107a088b03f6f87dd47039adc15c6fd6a Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Tue, 5 Nov 2019 12:04:30 +0800 Subject: [PATCH 2/2] Retab --- bootstrap-haskell | 116 +++++++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/bootstrap-haskell b/bootstrap-haskell index 9213794..80819cd 100755 --- a/bootstrap-haskell +++ b/bootstrap-haskell @@ -16,11 +16,11 @@ edo() } eghcup() { - if [ -z "${BOOTSTRAP_HASKELL_VERBOSE}" ] ; then - edo ghcup "$@" - else - edo ghcup --verbose "$@" - fi + if [ -z "${BOOTSTRAP_HASKELL_VERBOSE}" ] ; then + edo ghcup "$@" + else + edo ghcup --verbose "$@" + fi } echo @@ -40,29 +40,29 @@ echo "PATH components." echo if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then - printf "\\033[0;35m%s\\033[0m\\n" "To proceed with the ghcup installation press ENTER, to cancel press ctrl-c." - printf "\\033[0;35m%s\\033[0m\\n" "Note that this script can be re-run at any given time." - echo - # Wait for user input to continue. - # shellcheck disable=SC2034 - read -r answer /dev/null 2>&1 ; then - if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then - eghcup upgrade - fi + if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then + eghcup upgrade + fi else - edo curl --silent https://gitlab.haskell.org/haskell/ghcup/raw/master/ghcup > "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup - edo chmod +x "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup + edo curl --silent https://gitlab.haskell.org/haskell/ghcup/raw/master/ghcup > "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup + edo chmod +x "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup cat <<-EOF > "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/env || die "Failed to create env file" export PATH="\$HOME/.cabal/bin:\${GHCUP_INSTALL_BASE_PREFIX:=\$HOME}/.ghcup/bin:\$PATH" EOF # shellcheck disable=SC1090 - edo . "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/env + edo . "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/env fi echo @@ -71,13 +71,13 @@ echo " $(ghcup print-system-reqs)" echo if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then - printf "\\033[0;35m%s\\033[0m\\n" "You may want to install these now, then press ENTER to proceed" - printf "\\033[0;35m%s\\033[0m\\n" "or press ctrl-c to abort. Installation may take a while." - echo + printf "\\033[0;35m%s\\033[0m\\n" "You may want to install these now, then press ENTER to proceed" + printf "\\033[0;35m%s\\033[0m\\n" "or press ctrl-c to abort. Installation may take a while." + echo - # Wait for user input to continue. - # shellcheck disable=SC2034 - read -r answer > "${GHCUP_PROFILE_FILE}" - exit 0;; - [Nn]*) - exit 0;; - *) - echo "Please type YES or NO and press enter.";; - esac - done + case $next_answer in + [Yy]*) + echo "source $GHCUP_INSTALL_BASE_PREFIX/.ghcup/env" >> "${GHCUP_PROFILE_FILE}" + exit 0;; + [Nn]*) + exit 0;; + *) + echo "Please type YES or NO and press enter.";; + esac + done fi )