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
31 lines
806 B
JavaScript
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;
|
|
}
|