Browse Source

bin: add initial version table script [skip ci]

Renée Kooi 6 years ago
parent
commit
02672fdc31
1 changed files with 35 additions and 0 deletions
  1. 35 0
      bin/make-new-versions-table

+ 35 - 0
bin/make-new-versions-table

@@ -0,0 +1,35 @@
+#!/usr/bin/env node
+
+/**
+ * Generate a version table from the most recent "Release" commit,
+ * for use in changelogs.
+ *
+ * Usage:
+ *   $ ./bin/make-new-versions-table
+ */
+
+const { execSync } = require('child_process')
+
+const stdout = execSync('git log --grep Release -1 --pretty=raw')
+const str = stdout.toString()
+const rx = /- ([@/\w]+)@(\d+\.\d+\.\d+)/g
+
+const versions = []
+let m
+while ((m = rx.exec(str))) {
+  const [, pkg, version] = m
+  versions.push({ pkg, version })
+}
+
+const mid = Math.ceil(versions.length / 2)
+let table = [
+  '| Package | Version | Package | Version |',
+  '|-|-|-|-|'
+]
+for (let i = 0; i < mid; i++) {
+  const left = versions[i] || { pkg: '-', version: '-' }
+  const right = versions[i + mid] || { pkg: '-', version: '-' }
+  table.push(`| ${left.pkg} | ${left.version} | ${right.pkg} | ${right.version} |`)
+}
+
+console.log(table.join('\n'))