forked from amsul/pickadate.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
111 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/*jshint node: true*/ | ||
|
||
var program = require('commander') | ||
var semver = require('semver') | ||
var grunt = require('grunt') | ||
var glob = require('glob').sync | ||
|
||
|
||
program | ||
.option('-p, --patch', 'set the version as the next patch') | ||
.option('-m, --minor', 'set the version as the next minor') | ||
.option('-M, --major', 'set the version as the next major') | ||
.parse(process.argv) | ||
|
||
|
||
if (program.patch) { | ||
bumpVersion('patch') | ||
return | ||
} | ||
|
||
if (program.minor) { | ||
bumpVersion('minor') | ||
return | ||
} | ||
|
||
if (program.major) { | ||
bumpVersion('major') | ||
return | ||
} | ||
|
||
grunt.fail.fatal('No release type specified') | ||
return | ||
|
||
|
||
function bumpVersion(release) { | ||
grunt.log.writeln('Bumping package version by a ' + release) | ||
var version = readPackageVersion() | ||
grunt.log.writeln('Current package version: ' + version) | ||
version = semver.inc(version, release) | ||
grunt.log.writeln('Updated package version: ' + version) | ||
writePackageVersion(version) | ||
grunt.log.writeln('Done updating the package version') | ||
updateLibraryFiles(version) | ||
grunt.log.writeln('Done updating the library files') | ||
} | ||
|
||
|
||
function readPackageVersion() { | ||
var pkg = require('./package') | ||
return pkg.version | ||
} | ||
|
||
|
||
function writePackageVersion(version) { | ||
var pkg = require('./package') | ||
pkg.version = version | ||
grunt.file.write('./package.json', JSON.stringify(pkg, null, ' ')) | ||
} | ||
|
||
|
||
function updateLibraryFiles(version) { | ||
|
||
var versionRegex = /^(\s*\/\*![^\/]+?v)(\d+\.\d+\.\d+)(([^\n]+?)(\d+\/\d+\/\d+))?/ | ||
var today = grunt.template.today('yyyy/mm/dd') | ||
var files = glob('lib/*.js') | ||
|
||
files.forEach(updateLibraryFile) | ||
|
||
function updateLibraryFile(filePath) { | ||
var content = grunt.file.read(filePath) | ||
if (versionRegex.test(content)) { | ||
content = content.split(versionRegex) | ||
content = content[1] + version + (content[4] || '') + (content[5] ? today : '') + (content[6] || '') | ||
} | ||
grunt.file.write(filePath, content) | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
/*jshint node: true*/ | ||
|
||
var grunt = require('grunt') | ||
var exec = require('shelljs').exec | ||
|
||
var pkg = require('./package') | ||
|
||
|
||
var isSuccessful = commitAndTag(pkg.version) | ||
if (!isSuccessful) { | ||
grunt.fail.fatal('Unable to commit and tag version') | ||
} | ||
|
||
return | ||
|
||
|
||
function commitAndTag(version) { | ||
var code = exec([ | ||
'git add .', | ||
'git commit -m "Release v' + version + '"', | ||
'git tag ' + version, | ||
].join(' && ')).code | ||
return !code | ||
} |