version.js 956 B

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. var exec = require( "child_process" ).exec;
  3. module.exports = function( grunt ) {
  4. grunt.registerTask( "version", "Commit a new version", function( version ) {
  5. if ( !/\d\.\d+\.\d+/.test( version ) ) {
  6. grunt.fatal( "Version must follow semver release format: " + version );
  7. return;
  8. }
  9. var done = this.async(),
  10. files = grunt.config( "version.files" ),
  11. rversion = /("version":\s*")[^"]+/;
  12. // Update version in specified files
  13. files.forEach(function( filename ) {
  14. var text = grunt.file.read( filename );
  15. text = text.replace( rversion, "$1" + version );
  16. grunt.file.write( filename, text );
  17. });
  18. // Add files to git index
  19. exec( "git add -A", function( err ) {
  20. if ( err ) {
  21. grunt.fatal( err );
  22. return;
  23. }
  24. // Commit next pre version
  25. grunt.config( "pkg.version", version );
  26. grunt.task.run([ "build", "bower", "test", "commit:'Update version to " + version + "'" ]);
  27. done();
  28. });
  29. });
  30. };