Use GHCUP_INSTALL_BASE_PREFIX in bootstrap-haskell

This commit is contained in:
Julian Ospald 2019-01-24 21:36:44 +08:00
parent 99843f3201
commit 56874f8893
No known key found for this signature in database
GPG Key ID: 511B62C09D50CD28
1 changed files with 11 additions and 9 deletions

View File

@ -3,6 +3,8 @@
# safety subshell to avoid executing anything in case this script is not downloaded properly
(
: "${GHCUP_INSTALL_BASE_PREFIX:=$HOME}"
die() {
(>&2 printf "\\033[0;31m%s\\033[0m\\n" "$1")
exit 2
@ -23,9 +25,9 @@ echo
echo "It will add the 'cabal', 'ghc', and 'ghcup' executables to bin directory "
echo "located at: "
echo
echo " $HOME/.ghcup/bin"
echo " $GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin"
echo
echo "and create the environment file $HOME/.ghcup/env"
echo "and create the environment file $GHCUP_INSTALL_BASE_PREFIX/.ghcup/env"
echo "which you should source in your ~/.bashrc or similar to get the required"
echo "PATH components."
echo
@ -40,21 +42,21 @@ if [ -z "${BOOTSTRAP_HASKELL_NONINTERACTIVE}" ] ; then
read -r answer </dev/tty
fi
edo mkdir -p "${HOME}"/.ghcup/bin
edo mkdir -p "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin
if command -V "ghcup" >/dev/null 2>&1 ; then
if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then
edo ghcup upgrade
fi
else
edo curl https://raw.githubusercontent.com/haskell/ghcup/master/ghcup > "${HOME}"/.ghcup/bin/ghcup
edo chmod +x "${HOME}"/.ghcup/bin/ghcup
edo curl https://raw.githubusercontent.com/haskell/ghcup/master/ghcup > "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup
edo chmod +x "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/bin/ghcup
cat <<-EOF > "${HOME}"/.ghcup/env || die "Failed to create env file"
export PATH="\$HOME/.cabal/bin:\$HOME/.ghcup/bin:\$PATH"
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 . "${HOME}"/.ghcup/env
edo . "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup/env
fi
edo ghcup install
@ -69,7 +71,7 @@ edo cabal new-install --symlink-bindir="$HOME/.cabal/bin" --jobs=1 cabal-install
printf "\\033[0;35m%s\\033[0m\\n" ""
printf "\\033[0;35m%s\\033[0m\\n" "Installation done!"
printf "\\033[0;35m%s\\033[0m\\n" ""
printf "\\033[0;35m%s\\033[0m\\n" "Don't forget to source $HOME/.ghcup/env in your ~/.bashrc or similar."
printf "\\033[0;35m%s\\033[0m\\n" "Don't forget to source $GHCUP_INSTALL_BASE_PREFIX/.ghcup/env in your ~/.bashrc or similar."
printf "\\033[0;35m%s\\033[0m\\n" ""