make-new-versions-table 870 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/env node
  2. /**
  3. * Generate a version table from the most recent "Release" commit,
  4. * for use in changelogs.
  5. *
  6. * Usage:
  7. * $ ./bin/make-new-versions-table
  8. */
  9. const { execSync } = require('child_process')
  10. const stdout = execSync('git log --grep Release -1 --pretty=raw')
  11. const str = stdout.toString()
  12. const rx = /- ([@/\w]+)@(\d+\.\d+\.\d+)/g
  13. const versions = []
  14. let m
  15. while ((m = rx.exec(str))) {
  16. const [, pkg, version] = m
  17. versions.push({ pkg, version })
  18. }
  19. const mid = Math.ceil(versions.length / 2)
  20. let table = [
  21. '| Package | Version | Package | Version |',
  22. '|-|-|-|-|'
  23. ]
  24. for (let i = 0; i < mid; i++) {
  25. const left = versions[i] || { pkg: '-', version: '-' }
  26. const right = versions[i + mid] || { pkg: '-', version: '-' }
  27. table.push(`| ${left.pkg} | ${left.version} | ${right.pkg} | ${right.version} |`)
  28. }
  29. console.log(table.join('\n'))