You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
967 B
36 lines
967 B
"use strict";
|
|
|
|
var exec = require( "child_process" ).exec;
|
|
|
|
module.exports = function( grunt ) {
|
|
grunt.registerTask( "version", "Commit a new version", function( version ) {
|
|
if ( !/\d\.\d+\.\d+(?:-pre)?/.test( version ) ) {
|
|
grunt.fatal( "Version must follow semver release format: " + version );
|
|
return;
|
|
}
|
|
|
|
var done = this.async(),
|
|
files = grunt.config( "version.files" ),
|
|
rversion = /("version":\s*")[^"]+/;
|
|
|
|
// Update version in specified files
|
|
files.forEach(function( filename ) {
|
|
var text = grunt.file.read( filename );
|
|
text = text.replace( rversion, "$1" + version );
|
|
grunt.file.write( filename, text );
|
|
});
|
|
|
|
// Add files to git index
|
|
exec( "git add -A", function( err ) {
|
|
if ( err ) {
|
|
grunt.fatal( err );
|
|
return;
|
|
}
|
|
// Commit next pre version
|
|
grunt.config( "pkg.version", version );
|
|
grunt.task.run([ "build", "uglify", "dist", "commit:'Update version to " + version + "'" ]);
|
|
done();
|
|
});
|
|
});
|
|
};
|