Files
tutti/tools/scripts/golangci-lint-tool.mjs
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

31 lines
806 B
JavaScript

import { spawnSync } from "node:child_process";
import { existsSync } from "node:fs";
import { delimiter, join } from "node:path";
export function resolveGolangciLintBinary({
cwd = process.cwd(),
pathExists = existsSync,
platform = process.platform,
spawnSyncImpl = spawnSync
} = {}) {
const command = platform === "win32" ? "golangci-lint.exe" : "golangci-lint";
const result = spawnSyncImpl("go", ["env", "GOPATH"], {
cwd,
encoding: "utf8"
});
if (result.error?.code === "ENOENT" || result.status !== 0) {
return command;
}
for (const goPath of String(result.stdout ?? "")
.trim()
.split(delimiter)
.filter(Boolean)) {
const candidate = join(goPath, "bin", command);
if (pathExists(candidate)) {
return candidate;
}
}
return command;
}