Skip to content

Commit cde1479

Browse files
authored
Update & modernize scripts / version.js
1 parent e048b76 commit cde1479

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

scripts/version.js

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var src = {
1212
filter: tag => {
1313
var match = /^version_(\d+)$/.exec(tag); // see: https://github.com/WebAssembly/binaryen/issues/1156
1414
return match ? {
15-
tag: tag,
15+
tag,
1616
version: match[1] + ".0.0",
1717
} : null;
1818
}
@@ -23,41 +23,47 @@ var dst = {
2323
filter: tag => {
2424
var match = /^v(\d+\.\d+\.\d+)(?:\-|$)/.exec(tag);
2525
return match ? {
26-
tag: tag,
26+
tag,
2727
version: match[1]
2828
} : null;
2929
}
3030
};
3131

32-
function latest(repo) {
33-
return new Promise((resolve, reject) => {
34-
repo.git.tags({ "--sort": "-committerdate" }, (err, tags) => {
35-
if (err) return reject(err);
36-
for (var i = 0; i < tags.all.length; ++i) {
37-
var result = repo.filter(tags.all[i]);
38-
if (result !== null) {
39-
repo.tag = result.tag;
40-
repo.version = result.version;
41-
return resolve();
42-
};
32+
async function latest(repo) {
33+
try {
34+
const tags = await repo.git.tags({ "--sort": "-committerdate" });
35+
for (let i = 0; i < tags.all.length; i++) {
36+
const tag = tags.all[i];
37+
const res = repo.filter(tag);
38+
if (res !== null) {
39+
return res;
4340
}
44-
return reject(Error("no matching tags: " + tags.all.join(", ")));
45-
});
46-
}).catch(err => {
41+
}
42+
return { version: null, tag: null };
43+
} catch (err) {
4744
console.error(err.stack);
4845
process.exit(1);
49-
});
46+
}
5047
}
5148

52-
if (process.argv[2] === "tag") {
53-
latest(src).then(() => console.log(src.tag));
54-
} else {
55-
latest(src).then(() => {
56-
latest(dst).then(() => {
57-
if (semver.gt(src.version, dst.version))
58-
console.log(src.version);
59-
else
60-
console.log(src.version + "-nightly." + dateFormat(Date.UTC(), "yyyymmdd"));
61-
});
62-
});
49+
async function main() {
50+
if (process.argv[2] === "tag") {
51+
const { tag } = await latest(src);
52+
console.log(tag);
53+
return;
54+
}
55+
56+
let { version: srcVer } = await latest(src);
57+
let { version: dstVer } = await latest(dst);
58+
59+
srcVer = semver.clean(srcVer);
60+
dstVer = semver.coerce(dstVer);
61+
62+
if (!dstVer || semver.gt(srcVer, dstVer)) {
63+
console.log(srcVer);
64+
} else {
65+
console.log(`${srcVer}-nightly.${dateFormat(Date.UTC(), "yyyymmdd")}`);
66+
}
6367
}
68+
69+
main();

0 commit comments

Comments
 (0)