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

View File

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