mirror of
https://git.quad4.io/RNS-Things/MeshChatX.git
synced 2026-04-02 18:45:47 +00:00
38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Install go-task from GitHub releases with SHA256 verification.
|
|
# Source: https://github.com/go-task/task
|
|
# Usage: setup-task.sh [version]
|
|
set -eu
|
|
|
|
TASK_VERSION="${1:-3.49.1}"
|
|
|
|
ARCH="$(uname -m)"
|
|
case "$ARCH" in
|
|
x86_64) ARCH="amd64" ;;
|
|
aarch64) ARCH="arm64" ;;
|
|
*) echo "Unsupported architecture: $ARCH" >&2; exit 1 ;;
|
|
esac
|
|
|
|
BASE_URL="https://github.com/go-task/task/releases/download/v${TASK_VERSION}"
|
|
TARBALL="task_linux_${ARCH}.tar.gz"
|
|
|
|
echo "Installing Task v${TASK_VERSION} (${ARCH})"
|
|
curl -fsSL "${BASE_URL}/task_checksums.txt" -o /tmp/task-checksums.txt
|
|
curl -fsSL "${BASE_URL}/${TARBALL}" -o /tmp/task.tar.gz
|
|
|
|
EXPECTED="$(grep " ${TARBALL}\$" /tmp/task-checksums.txt | cut -d' ' -f1)"
|
|
ACTUAL="$(sha256sum /tmp/task.tar.gz | cut -d' ' -f1)"
|
|
if [ -z "$EXPECTED" ] || [ "$EXPECTED" != "$ACTUAL" ]; then
|
|
echo "SHA256 verification failed for ${TARBALL}" >&2
|
|
echo " expected: ${EXPECTED}" >&2
|
|
echo " got: ${ACTUAL}" >&2
|
|
rm -f /tmp/task.tar.gz /tmp/task-checksums.txt
|
|
exit 1
|
|
fi
|
|
echo "SHA256 verified: ${ACTUAL}"
|
|
|
|
sudo tar -xzf /tmp/task.tar.gz -C /usr/local/bin task
|
|
rm -f /tmp/task.tar.gz /tmp/task-checksums.txt
|
|
|
|
task --version
|