version-changes.js 936 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env node
  2. var fs = require('fs');
  3. var path = require('path');
  4. var changesFilePath = path.join(__dirname, '..', 'Changes.md');
  5. var changesFileContents = fs.readFileSync(changesFilePath, 'utf-8');
  6. var changesHeadRegexp = /^## HEAD$/m;
  7. var date = getLocaleDate();
  8. var version = process.env.npm_package_version;
  9. if (!changesHeadRegexp.test(changesFileContents)) {
  10. console.error('Changes.md missing version marker.');
  11. process.exit(1);
  12. }
  13. fs.writeFileSync(changesFilePath,
  14. changesFileContents.replace(changesHeadRegexp, '## v' + version + ' (' + date + ')'));
  15. function getLocaleDate() {
  16. var now = new Date();
  17. return zeroPad(now.getFullYear(), 4) + '-' +
  18. zeroPad(now.getMonth() + 1, 2) + '-' +
  19. zeroPad(now.getDate(), 2);
  20. }
  21. function zeroPad(number, length) {
  22. number = number.toString();
  23. while (number.length < length) {
  24. number = '0' + number;
  25. }
  26. return number;
  27. }