Skip to content
Snippets Groups Projects
Verified Commit 9daca301 authored by Julian Ospald's avatar Julian Ospald :tea:
Browse files

Make sure we source ghcup dirs in bootstrap script

Fixes #354
parent 9ad1f7cb
Branches issue-354
No related tags found
1 merge request!248Make sure we source ghcup dirs in bootstrap script
Pipeline #50994 passed with warnings
...@@ -126,10 +126,10 @@ _eghcup() { ...@@ -126,10 +126,10 @@ _eghcup() {
fi fi
if [ -z "${BOOTSTRAP_HASKELL_VERBOSE}" ] ; then if [ -z "${BOOTSTRAP_HASKELL_VERBOSE}" ] ; then
# shellcheck disable=SC2086 # shellcheck disable=SC2086
"${GHCUP_BIN}/ghcup" ${args} "$@" "ghcup" ${args} "$@"
else else
# shellcheck disable=SC2086 # shellcheck disable=SC2086
"${GHCUP_BIN}/ghcup" ${args} --verbose "$@" "ghcup" ${args} --verbose "$@"
fi fi
} }
...@@ -228,99 +228,100 @@ posix_realpath() { ...@@ -228,99 +228,100 @@ posix_realpath() {
} }
download_ghcup() { download_ghcup() {
if ! command -V "ghcup" >/dev/null 2>&1 ; then
case "${plat}" in case "${plat}" in
"linux"|"Linux") "linux"|"Linux")
case "${arch}" in case "${arch}" in
x86_64|amd64) x86_64|amd64)
# we could be in a 32bit docker container, in which # we could be in a 32bit docker container, in which
# case uname doesn't give us what we want # case uname doesn't give us what we want
if [ "$(getconf LONG_BIT)" = "32" ] ; then if [ "$(getconf LONG_BIT)" = "32" ] ; then
_url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver}
elif [ "$(getconf LONG_BIT)" = "64" ] ; then elif [ "$(getconf LONG_BIT)" = "64" ] ; then
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-linux-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/x86_64-linux-ghcup-${ghver}
else else
die "Unknown long bit size: $(getconf LONG_BIT)" die "Unknown long bit size: $(getconf LONG_BIT)"
fi fi
;; ;;
i*86) i*86)
_url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver}
;; ;;
armv7*|*armv8l*) armv7*|*armv8l*)
_url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver}
;; ;;
aarch64|arm64) aarch64|arm64)
# we could be in a 32bit docker container, in which # we could be in a 32bit docker container, in which
# case uname doesn't give us what we want # case uname doesn't give us what we want
if [ "$(getconf LONG_BIT)" = "32" ] ; then if [ "$(getconf LONG_BIT)" = "32" ] ; then
_url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver}
elif [ "$(getconf LONG_BIT)" = "64" ] ; then elif [ "$(getconf LONG_BIT)" = "64" ] ; then
_url=${GHCUP_BASE_URL}/${ghver}/aarch64-linux-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/aarch64-linux-ghcup-${ghver}
else else
die "Unknown long bit size: $(getconf LONG_BIT)" die "Unknown long bit size: $(getconf LONG_BIT)"
fi fi
;; ;;
*) die "Unknown architecture: ${arch}" *) die "Unknown architecture: ${arch}"
;; ;;
esac esac
;; ;;
"FreeBSD"|"freebsd") "FreeBSD"|"freebsd")
if freebsd-version | grep -E '^12.*' ; then if freebsd-version | grep -E '^12.*' ; then
freebsd_ver=12 freebsd_ver=12
elif freebsd-version | grep -E '^13.*' ; then elif freebsd-version | grep -E '^13.*' ; then
freebsd_ver=13 freebsd_ver=13
else else
die "Unsupported FreeBSD version! Please report a bug at https://gitlab.haskell.org/haskell/ghcup-hs/-/issues" die "Unsupported FreeBSD version! Please report a bug at https://gitlab.haskell.org/haskell/ghcup-hs/-/issues"
fi fi
case "${arch}" in case "${arch}" in
x86_64|amd64) x86_64|amd64)
;; ;;
i*86) i*86)
die "i386 currently not supported!" die "i386 currently not supported!"
;; ;;
*) die "Unknown architecture: ${arch}" *) die "Unknown architecture: ${arch}"
;; ;;
esac esac
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-freebsd${freebsd_ver}-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/x86_64-freebsd${freebsd_ver}-ghcup-${ghver}
;; ;;
"Darwin"|"darwin") "Darwin"|"darwin")
case "${arch}" in case "${arch}" in
x86_64|amd64) x86_64|amd64)
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-apple-darwin-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/x86_64-apple-darwin-ghcup-${ghver}
;; ;;
aarch64|arm64|armv8l) aarch64|arm64|armv8l)
_url=${GHCUP_BASE_URL}/${ghver}/aarch64-apple-darwin-ghcup-${ghver} _url=${GHCUP_BASE_URL}/${ghver}/aarch64-apple-darwin-ghcup-${ghver}
;; ;;
i*86) i*86)
die "i386 currently not supported!" die "i386 currently not supported!"
;; ;;
*) die "Unknown architecture: ${arch}" *) die "Unknown architecture: ${arch}"
;; ;;
esac esac
;; ;;
MSYS*|MINGW*) MSYS*|MINGW*)
case "${arch}" in case "${arch}" in
x86_64|amd64) x86_64|amd64)
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-mingw64-ghcup-${ghver}.exe _url=${GHCUP_BASE_URL}/${ghver}/x86_64-mingw64-ghcup-${ghver}.exe
;; ;;
*) die "Unknown architecture: ${arch}" *) die "Unknown architecture: ${arch}"
;; ;;
esac esac
;; ;;
*) die "Unknown platform: ${plat}" *) die "Unknown platform: ${plat}"
;; ;;
esac esac
case "${plat}" in case "${plat}" in
MSYS*|MINGW*) MSYS*|MINGW*)
edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup.exe edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup.exe
edo chmod +x "${GHCUP_BIN}"/ghcup.exe edo chmod +x "${GHCUP_BIN}"/ghcup.exe
;; ;;
*) *)
edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup
edo chmod +x "${GHCUP_BIN}"/ghcup edo chmod +x "${GHCUP_BIN}"/ghcup
;; ;;
esac esac
fi
edo mkdir -p "${GHCUP_DIR}" edo mkdir -p "${GHCUP_DIR}"
...@@ -344,7 +345,9 @@ download_ghcup() { ...@@ -344,7 +345,9 @@ download_ghcup() {
# shellcheck disable=SC1090 # shellcheck disable=SC1090
edo . "${GHCUP_DIR}"/env edo . "${GHCUP_DIR}"/env
eghcup upgrade if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then
ghcup upgrade || yellow "Failed to upgrade ghcup, continuing anyway"
fi
} }
# Figures out the users login shell and sets # Figures out the users login shell and sets
...@@ -733,13 +736,7 @@ fi ...@@ -733,13 +736,7 @@ fi
edo mkdir -p "${GHCUP_BIN}" edo mkdir -p "${GHCUP_BIN}"
if command -V "ghcup" >/dev/null 2>&1 ; then download_ghcup
if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then
_eghcup upgrade || download_ghcup
fi
else
download_ghcup
fi
echo echo
if [ -n "${BOOTSTRAP_HASKELL_YAML}" ] ; then (>&2 ghcup -s "${BOOTSTRAP_HASKELL_YAML}" tool-requirements) ; else (>&2 ghcup tool-requirements) ; fi if [ -n "${BOOTSTRAP_HASKELL_YAML}" ] ; then (>&2 ghcup -s "${BOOTSTRAP_HASKELL_YAML}" tool-requirements) ; else (>&2 ghcup tool-requirements) ; fi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment