2022-07-10 18:44:30 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
##@Version : 202207101834-git
|
|
|
|
# @Author : Jason Hempstead
|
|
|
|
# @Contact : jason@casjaysdev.com
|
|
|
|
# @License : LICENSE.md
|
|
|
|
# @ReadME : get-deno.sh --help
|
|
|
|
# @Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments
|
|
|
|
# @Created : Sunday, Jul 10, 2022 18:34 EDT
|
|
|
|
# @File : get-deno.sh
|
|
|
|
# @Description : Download binaries for amd64 and arm64
|
|
|
|
# @TODO :
|
|
|
|
# @Other :
|
|
|
|
# @Resource :
|
|
|
|
# @sudo/root : no
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
2022-10-11 16:07:58 -04:00
|
|
|
# Set bash options
|
|
|
|
[ -n "$DEBUG" ] && set -x
|
2022-10-12 17:25:02 -04:00
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
DENO_VERSION="${DENO_VERSION:-v1.26.1}"
|
2022-10-12 18:31:11 -04:00
|
|
|
DENO_URL_x64_LATEST="https://github.com/denoland/deno/releases/download/latest/deno-x86_64-unknown-linux-gnu.zip"
|
|
|
|
DENO_URL_x64_VERSION="https://github.com/denoland/deno/releases/download/$DENO_VERSION/deno-x86_64-unknown-linux-gnu.zip"
|
|
|
|
DENO_URL_ARM64_LATEST="https://github.com/LukeChannings/deno-arm64/releases/latest/download/deno-linux-arm64.zip"
|
|
|
|
DENO_URL_ARM64_VERSION="https://github.com/LukeChannings/deno-arm64/releases/download/$DENO_VERSION/deno-linux-arm64.zip"
|
2022-10-12 17:48:30 -04:00
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
__get_file() {
|
2022-10-12 18:42:53 -04:00
|
|
|
local exitStatus=""
|
|
|
|
if curl -q -LSf -o "$FILE" "$URL"; then
|
|
|
|
exitStatus=0
|
|
|
|
elif curl -q -LSf -o "$FILE" "$LATEST_URL"; then
|
2022-10-12 18:31:11 -04:00
|
|
|
URL="$LATEST_URL"
|
2022-10-12 18:42:53 -04:00
|
|
|
exitStatus=0
|
2022-10-12 17:48:30 -04:00
|
|
|
else
|
2022-10-12 18:42:53 -04:00
|
|
|
exitStatus=1
|
2022-10-12 17:48:30 -04:00
|
|
|
fi
|
2022-10-12 18:42:53 -04:00
|
|
|
return ${exitStatus}
|
2022-10-12 17:48:30 -04:00
|
|
|
}
|
2022-10-11 16:07:58 -04:00
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
2022-07-10 18:44:30 -04:00
|
|
|
# AMD64 binary
|
|
|
|
if [ "$(uname -m)" = "amd64" ] || [ "$(uname -m)" = "x86_64" ]; then
|
|
|
|
ARCH=x86_64
|
2022-10-12 17:48:30 -04:00
|
|
|
FILE="/tmp/deno-$ARCH.zip"
|
2022-10-12 18:36:54 -04:00
|
|
|
URL="$DENO_URL_x64_VERSION"
|
2022-10-12 18:42:53 -04:00
|
|
|
LATEST_URL="$DENO_URL_x64_LATEST"
|
2022-10-12 18:31:11 -04:00
|
|
|
if [ "$DENO_VERSION" = "latest" ] || [ -z "$DENO_VERSION" ]; then
|
|
|
|
DENO_VERSION="latest"
|
|
|
|
URL="$DENO_URL_x64_LATEST"
|
|
|
|
fi
|
2022-10-12 17:25:02 -04:00
|
|
|
echo "grabbing ${DENO_VERSION}/deno-x86_64-unknown-linux-gnu.zip from denoland for $ARCH"
|
2022-10-12 17:48:30 -04:00
|
|
|
__get_file && if [ -f "/tmp/deno-$ARCH.zip" ]; then
|
2022-10-12 18:36:54 -04:00
|
|
|
mkdir -p "/tmp/deno-$ARCH" && cd "/tmp/deno-$ARCH" || exit 10
|
|
|
|
unzip "/tmp/deno-$ARCH.zip"
|
|
|
|
mv -fv "/tmp/deno-$ARCH/deno" "/usr/bin/deno"
|
|
|
|
chmod -Rf 755 "/usr/bin/deno"
|
|
|
|
rm -Rf "/tmp/deno-$ARCH.zip" "/tmp/deno-$ARCH"
|
2022-10-12 17:48:30 -04:00
|
|
|
fi
|
2022-10-12 18:36:54 -04:00
|
|
|
else
|
|
|
|
echo "Failed to download deno from $URL"
|
|
|
|
exit 2
|
|
|
|
fi
|
2022-07-10 18:44:30 -04:00
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
# ARM64 binary
|
|
|
|
if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then
|
|
|
|
ARCH=arm64
|
2022-10-12 17:48:30 -04:00
|
|
|
FILE="/tmp/deno-$ARCH.zip"
|
2022-10-12 18:36:54 -04:00
|
|
|
URL="$DENO_URL_ARM64_VERSION"
|
2022-10-12 18:42:53 -04:00
|
|
|
LATEST_URL="$DENO_URL_ARM64_LATEST"
|
2022-10-12 18:31:11 -04:00
|
|
|
if [ "$DENO_VERSION" = "latest" ] || [ -z "$DENO_VERSION" ]; then
|
|
|
|
DENO_VERSION="latest"
|
|
|
|
URL="$DENO_URL_ARM64_LATEST"
|
|
|
|
fi
|
2022-10-12 17:25:02 -04:00
|
|
|
echo "grabbing ${DENO_VERSION}/deno-linux-arm64.zip from LukeChannings for $ARCH"
|
2022-10-12 18:36:54 -04:00
|
|
|
__get_file && if [ -f "/tmp/deno-$ARCH.zip" ]; then
|
|
|
|
mkdir -p "/tmp/deno-$ARCH" && cd "/tmp/deno-$ARCH" || exit 10
|
|
|
|
unzip "/tmp/deno-$ARCH.zip"
|
|
|
|
mv -fv "/tmp/deno-$ARCH/deno" "/usr/bin/deno"
|
|
|
|
chmod -Rf 755 "/usr/bin/deno"
|
|
|
|
rm -Rf "/tmp/deno-$ARCH.zip" "/tmp/deno-$ARCH"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "Failed to download deno from $URL"
|
|
|
|
exit 2
|
2022-07-10 18:44:30 -04:00
|
|
|
fi
|
2022-10-12 17:25:02 -04:00
|
|
|
[ -f "$(which "deno")" ] && deno upgrade && exit 0 || exit 10
|