|
17 | 17 | RESET='' |
18 | 18 | fi |
19 | 19 |
|
| 20 | +OS="" |
| 21 | +ARCH="" |
| 22 | + |
| 23 | +case "$(uname)" in |
| 24 | + Linux) |
| 25 | + OS=linux |
| 26 | + case "$(uname -m)" in |
| 27 | + x86_64) ARCH=amd64 ;; |
| 28 | + aarch64*|armv8b|armv8l) ARCH=arm64 ;; |
| 29 | + esac |
| 30 | + ;; |
| 31 | + Darwin) |
| 32 | + OS=darwin |
| 33 | + case "$(uname -m)" in |
| 34 | + x86_64) ARCH=amd64 ;; |
| 35 | + arm64) ARCH=arm64 ;; |
| 36 | + esac |
| 37 | + ;; |
| 38 | + FreeBSD) |
| 39 | + OS=freebsd |
| 40 | + case "$(uname -m)" in |
| 41 | + amd64) ARCH=amd64 ;; |
| 42 | + esac |
| 43 | + ;; |
| 44 | + *) |
| 45 | + printf >&2 '%bPlease does not support the %s operating system.%b\n' \ |
| 46 | + "${RED}" "$(uname)" "${RESET}" |
| 47 | + exit 1 |
| 48 | + ;; |
| 49 | +esac |
20 | 50 |
|
21 | | -DEFAULT_URL_BASE='https://get.please.build' |
22 | | - |
23 | | -OS="$(uname)" |
24 | | - |
25 | | -if [ "${OS}" = 'Darwin' ]; then |
26 | | - # switch between mac amd64/arm64 |
27 | | - ARCH="$(uname -m)" |
28 | | -else |
29 | | - # default to amd64 on other operating systems |
30 | | - # because we only build intel binaries |
31 | | - ARCH='amd64' |
| 51 | +if [ -z "$ARCH" ]; then |
| 52 | + printf >&2 '%bPlease does not support the %s architecture on %s.%b\n' \ |
| 53 | + "${RED}" "$(uname -m)" "$(uname)" "${RESET}" |
| 54 | + exit 1 |
32 | 55 | fi |
33 | 56 |
|
34 | | -case "${ARCH}" in |
35 | | - aarch64_be|aarch64|armv8b|armv8l) ARCH='arm64' ;; |
36 | | - x86_64) ARCH='amd64' ;; |
37 | | -esac |
| 57 | +DEFAULT_URL_BASE='https://get.please.build' |
38 | 58 |
|
39 | 59 | has_command () { |
40 | 60 | command -v "${1}" > /dev/null 2>&1 |
@@ -141,20 +161,7 @@ if [ "${VERSION:+x}" != 'x' ]; then |
141 | 161 | VERSION=$(${TRANSFER_TOOL} ${TRANSFER_SILENT_OPTS} "${URL_BASE}"/latest_version) |
142 | 162 | fi |
143 | 163 |
|
144 | | -# Find the os / arch to download. You can do this quite nicely with go env |
145 | | -# but we use this script on machines that don't necessarily have Go itself. |
146 | | -if [ "${OS}" = 'Linux' ]; then |
147 | | - GOOS='linux' |
148 | | -elif [ "${OS}" = 'Darwin' ]; then |
149 | | - GOOS='darwin' |
150 | | -elif [ "${OS}" = 'FreeBSD' ]; then |
151 | | - GOOS='freebsd' |
152 | | -else |
153 | | - printf >&2 '%bUnknown operating system %s%b\n' "${RED}" "${OS}" "${RESET}" |
154 | | - exit 1 |
155 | | -fi |
156 | | - |
157 | | -PLEASE_URL="${URL_BASE}/${GOOS}_${ARCH}/${VERSION}/please_${VERSION}.tar.xz" |
| 164 | +PLEASE_URL="${URL_BASE}/${OS}_${ARCH}/${VERSION}/please_${VERSION}.tar.xz" |
158 | 165 | DIR="${LOCATION}/${VERSION}" |
159 | 166 |
|
160 | 167 | # Potentially we could reuse this but it's easier not to really. |
|
165 | 172 | printf >&2 '%bDownloading Please %s to %s...%b\n' "${GREEN}" "${VERSION}" "${DIR}" "${RESET}" |
166 | 173 | mkdir -p "${DIR}" |
167 | 174 | ${TRANSFER_TOOL} ${TRANSFER_PROGRESS_OPTS} "${PLEASE_URL}" | tar -xJpf- --strip-components=1 -C "${DIR}" |
| 175 | +if [ $? -ne 0 ]; then |
| 176 | + printf >&2 '%bFailed to download Please%b\n' "${RED}" "${RESET}" |
| 177 | + exit 1 |
| 178 | +fi |
168 | 179 |
|
169 | 180 | # Link it all back up a dir |
170 | 181 | for x in "${DIR}"/*; do |
|
0 commit comments