replace gobin with go install

The repository github.com/myitcv/gobin has already been archived,
and the `go install` command accepts arguments with version suffixs
starting from 1.16 (for example, go install example.com/cmd@v1.0.0).
So there is no reason to continue to use gobin.
This commit is contained in:
ahrtr 2022-02-06 14:23:28 +08:00
parent 986a2b51f4
commit 900fc8dd7e
3 changed files with 14 additions and 11 deletions

View File

@ -353,23 +353,27 @@ function tool_exists {
fi
}
# Ensure gobin is available, as it runs majority of the tools
if ! command -v "gobin" >/dev/null; then
GOARCH="" run env GO111MODULE=off go get github.com/myitcv/gobin || exit 1
fi
# tool_get_bin [tool] - returns absolute path to a tool binary (or returns error)
function tool_get_bin {
tool_exists "gobin" "GO111MODULE=off go get github.com/myitcv/gobin" || return 2
local tool="$1"
local pkg_part="$1"
if [[ "$tool" == *"@"* ]]; then
pkg_part=$(echo "${tool}" | cut -d'@' -f1)
# shellcheck disable=SC2086
run gobin ${GOBINARGS:-} -p "${tool}" || return 2
run go install ${GOBINARGS:-} "${tool}" || return 2
else
# shellcheck disable=SC2086
run_for_module ./tools/mod run gobin ${GOBINARGS:-} -p -m --mod=readonly "${tool}" || return 2
run_for_module ./tools/mod run go install ${GOBINARGS:-} "${tool}" || return 2
fi
# remove the version suffix, such as removing "/v3" from "go.etcd.io/etcd/v3".
local cmd_base_name
cmd_base_name=$(basename "${pkg_part}")
if [[ ${cmd_base_name} =~ ^v[0-9]*$ ]]; then
pkg_part=$(dirname "${pkg_part}")
fi
command -v "$(basename "${pkg_part}")"
}
# tool_pkg_dir [pkg] - returns absolute path to a directory that stores given pkg.

View File

@ -44,7 +44,6 @@ WORKDIR ${GOPATH}/src/go.etcd.io/etcd
ADD ./scripts/install-marker.sh /tmp/install-marker.sh
RUN GO111MODULE=off go get github.com/myitcv/gobin
RUN /tmp/install-marker.sh amd64 \
&& rm -f /tmp/install-marker.sh \
&& curl -s https://codecov.io/bash >/codecov \

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
cd ./tools/mod || exit 2
go list --tags tools -f '{{ join .Imports "\n" }}' | xargs gobin -p
go list --tags tools -f '{{ join .Imports "\n" }}' | xargs go install