mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-05 00:45:29 +08:00
fix: address codex review issues for lint bootstrap and token replay
This commit is contained in:
@@ -9,9 +9,30 @@ BOOTSTRAP_VERSION="${GOLANGCI_LINT_VERSION:-v2.11.4}"
|
||||
BOOTSTRAP_BIN="${ROOT_DIR}/.tmp/golangci-lint-${BOOTSTRAP_VERSION}"
|
||||
|
||||
bootstrap_golangci_lint() {
|
||||
local version_no_v archive_url tmp_dir
|
||||
local version_no_v os arch artifact archive_url tmp_dir
|
||||
version_no_v="${BOOTSTRAP_VERSION#v}"
|
||||
archive_url="https://github.com/golangci/golangci-lint/releases/download/${BOOTSTRAP_VERSION}/golangci-lint-${version_no_v}-linux-amd64.tar.gz"
|
||||
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
||||
arch="$(uname -m | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
case "$os" in
|
||||
linux|darwin|windows) ;;
|
||||
*)
|
||||
echo "unsupported OS for bootstrap: ${os}" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$arch" in
|
||||
x86_64|amd64) arch="amd64" ;;
|
||||
aarch64|arm64) arch="arm64" ;;
|
||||
*)
|
||||
echo "unsupported architecture for bootstrap: ${arch}" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
artifact="${os}-${arch}"
|
||||
archive_url="https://github.com/golangci/golangci-lint/releases/download/${BOOTSTRAP_VERSION}/golangci-lint-${version_no_v}-${artifact}.tar.gz"
|
||||
|
||||
mkdir -p "${ROOT_DIR}/.tmp"
|
||||
tmp_dir="$(mktemp -d)"
|
||||
@@ -19,7 +40,7 @@ bootstrap_golangci_lint() {
|
||||
|
||||
curl -sSfL "${archive_url}" -o "${tmp_dir}/golangci-lint.tar.gz"
|
||||
tar -xzf "${tmp_dir}/golangci-lint.tar.gz" -C "${tmp_dir}"
|
||||
cp "${tmp_dir}/golangci-lint-${version_no_v}-linux-amd64/golangci-lint" "${BOOTSTRAP_BIN}"
|
||||
cp "${tmp_dir}/golangci-lint-${version_no_v}-${artifact}/golangci-lint" "${BOOTSTRAP_BIN}"
|
||||
chmod +x "${BOOTSTRAP_BIN}"
|
||||
|
||||
echo "bootstrapped golangci-lint ${BOOTSTRAP_VERSION} to ${BOOTSTRAP_BIN}" >&2
|
||||
@@ -34,6 +55,22 @@ run_lint() {
|
||||
fi
|
||||
}
|
||||
|
||||
is_compatibility_error() {
|
||||
case "$1" in
|
||||
*"unknown command \"fmt\""*|\
|
||||
*"unknown command \"run\""*|\
|
||||
*"unknown flag"*|\
|
||||
*"no such flag"*|\
|
||||
*"unsupported version of the configuration"*|\
|
||||
*"can't load config"*)
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# v2 separates formatters from linters; enforce both in one entrypoint.
|
||||
if lint_output="$(run_lint "$LINT_BIN" 2>&1)"; then
|
||||
[[ -n "$lint_output" ]] && echo "$lint_output"
|
||||
@@ -46,9 +83,20 @@ if [[ -n "${GOLANGCI_LINT_BIN:-}" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "default golangci-lint is incompatible; bootstrapping ${BOOTSTRAP_VERSION}..." >&2
|
||||
if ! is_compatibility_error "$lint_output"; then
|
||||
echo "$lint_output" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "default golangci-lint appears incompatible; bootstrapping ${BOOTSTRAP_VERSION}..." >&2
|
||||
if [[ ! -x "${BOOTSTRAP_BIN}" ]]; then
|
||||
bootstrap_golangci_lint
|
||||
fi
|
||||
|
||||
run_lint "${BOOTSTRAP_BIN}"
|
||||
if lint_output="$(run_lint "${BOOTSTRAP_BIN}" 2>&1)"; then
|
||||
[[ -n "$lint_output" ]] && echo "$lint_output"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "$lint_output" >&2
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user