File: install_golangci.sh

package info (click to toggle)
podman 5.7.0%2Bds2-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 23,824 kB
  • sloc: sh: 4,700; python: 2,798; perl: 1,885; ansic: 1,484; makefile: 977; ruby: 42; csh: 8
file content (36 lines) | stat: -rwxr-xr-x 985 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env bash

# This script is intended to be a convenience, to be called from the
# Makefile `.install.golangci-lint` target.  Any other usage is not recommended.

die() { echo "${1:-No error message given} (from $(basename "$0"))"; exit 1; }

[ -n "$VERSION" ] || die "\$VERSION is empty or undefined"

# Strip the leading v, if found.
VERSION=${VERSION#v}

function install() {
    local retry=$1

    local msg="Installing golangci-lint v$VERSION into $BIN"
    if [[ $retry -ne 0 ]]; then
        msg+=" - retry #$retry"
    fi
    echo "$msg"

    curl -sSfL --retry 5 https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $BINDIR "v$VERSION"
}

BINDIR="./bin"
BIN="$BINDIR/golangci-lint"
if [ -x "$BIN" ] && $BIN --version | grep "$VERSION"; then
    echo "Using existing $BIN"
    exit 0
fi

# This flakes much too frequently with "crit unable to find v1.51.1"
for retry in $(seq 0 5); do
    install "$retry" && exit 0
    sleep 5
done