You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
#!/usr/bin/env zx
|
|
|
|
$.verbose = false;
|
|
|
|
async function getGoVersion() {
|
|
const goVersionProcess = await $`go version`;
|
|
const re = /go version go(.*) /
|
|
return re.exec(goVersionProcess.stdout)[1]
|
|
}
|
|
|
|
try {
|
|
|
|
let gitRoot = await $`git rev-parse --show-toplevel`;
|
|
gitRoot = gitRoot.stdout.trim();
|
|
const lintPath = `${gitRoot}/.github/workflows/golangci.yml`;
|
|
const catOutput = await $`cat ${lintPath}`;
|
|
const contents = catOutput.stdout;
|
|
|
|
let re = /version:\sv(.*)/
|
|
const targetVersion = re.exec(contents)[1]
|
|
|
|
let currentVersion = await $`golangci-lint --version`
|
|
re = /golangci-lint has version (.*) built.*/
|
|
currentVersion = re.exec(currentVersion.stdout)[1]
|
|
|
|
let goVersion = await getGoVersion()
|
|
goVersion = goVersion.substring(0, 4); // strip off the patch version
|
|
if (currentVersion !== targetVersion) {
|
|
await $`curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /Users/chatton/.gvm/pkgsets/go${goVersion}/global/bin v${targetVersion}`
|
|
console.log("updated to version " + targetVersion);
|
|
}
|
|
|
|
} catch (e) {
|
|
await $`exit 0`;
|
|
}
|