34 lines
940 B
Bash
Executable File
34 lines
940 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
set -x
|
|
|
|
# golangci-lint recommends against using `go get` and friends to install it
|
|
|
|
cd "$1"
|
|
|
|
VERSION=2.8.0
|
|
FILENAME=golangci-lint-"$VERSION"-linux-"$GOHOSTARCH".tar.gz
|
|
|
|
if [ -e "$FILENAME" ]; then
|
|
echo "$FILENAME" already exists 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
wget --continue https://github.com/golangci/golangci-lint/releases/download/v"$VERSION"/"$FILENAME"
|
|
|
|
stat "$FILENAME"
|
|
|
|
# Select the correct checksum for the downloaded architecture
|
|
case "$GOHOSTARCH" in
|
|
arm64) EXPECTED_SHA256="2a58388db8af5ab9330791cea0ebdd4100723cd05ad7185d92febaaee272ec9a" ;;
|
|
amd64) EXPECTED_SHA256="7048bc6b25c9515ed092c83f9fa8709ca97937ead52d9ff317a143299ee97a50" ;;
|
|
*) echo "Unknown architecture: $GOHOSTARCH" >&2; exit 1 ;;
|
|
esac
|
|
|
|
# Verify checksum explicitly - fails if hash doesn't match
|
|
echo "$EXPECTED_SHA256 $FILENAME" | sha256sum -c -
|
|
|
|
tar -x --strip-components=1 -f "$FILENAME"
|
|
|
|
stat ./golangci-lint
|