project_start/dockerfiles/centrifugo/scripts/install.sh

71 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
set -e
if [ -n "${DEBUG}" ]; then
set -x
fi
_centrifugo_latest() {
curl -s https://api.github.com/repos/centrifugal/centrifugo/releases/latest | grep "tag_name" | awk '{print $2}' | sed 's/[",]//g'
}
_detect_binary() {
os="$(uname)"
case "$os" in
Linux|Darwin) echo "centrifugo" ;;
*) echo "Unsupported operating system: $os" 1>&2; return 1 ;;
esac
unset os
}
_detect_os() {
os="$(uname)"
case "$os" in
Linux) echo "linux" ;;
Darwin) echo "darwin" ;;
*) echo "Unsupported operating system: $os" 1>&2; return 1 ;;
esac
unset os
}
_detect_arch() {
arch="$(uname -m)"
case "$arch" in
amd64|x86_64) echo "amd64" ;;
arm64|aarch64) echo "arm64" ;;
*) echo "Unsupported processor architecture: $arch" 1>&2; return 1 ;;
esac
unset arch
}
_download_url() {
echo "https://github.com/centrifugal/centrifugo/releases/download/$CENTRIFUGO_VERSION/${centrifugoBinary}_${CENTRIFUGO_VERSION#"v"}_${centrifugoOs}_${centrifugoArch}.tar.gz"
}
main() {
if [ -z "${CENTRIFUGO_VERSION}" ]; then
CENTRIFUGO_VERSION=$(_centrifugo_latest)
fi
centrifugoInstallPath=`pwd`
centrifugoBinary="$(_detect_binary)"
centrifugoOs="$(_detect_os)"
centrifugoArch="$(_detect_arch)"
centrifugoDownloadUrl="$(_download_url)"
mkdir -p -- "$centrifugoInstallPath"
echo "Downloading centrifugo from URL: $centrifugoDownloadUrl"
tmpdir=$(mktemp -d)
curl -sSLf "$centrifugoDownloadUrl" >"$tmpdir/centrifugo.tar.gz"
tar -xzf $tmpdir/centrifugo.tar.gz ${centrifugoBinary}
chmod +x "$centrifugoBinary"
rm -r $tmpdir
echo "centrifugo is now executable in $centrifugoInstallPath"
}
main