1 | var pkg = require('../package.json')
|
2 | var fs = require('fs')
|
3 |
|
4 | function read(n) {
|
5 | return fs.readFileSync(n, 'utf-8')
|
6 | }
|
7 |
|
8 | function write(n, s) {
|
9 | return fs.writeFileSync(n, s, 'utf-8')
|
10 | }
|
11 |
|
12 | function minor(a) {
|
13 | return [a[0], a[1], Number(a[2]) + 1]
|
14 | }
|
15 |
|
16 | function feature(a) {
|
17 | return [a[0], Number(a[1]) + 1, 0]
|
18 | }
|
19 |
|
20 | function major(a) {
|
21 | return [Number(a[0]) + 1, 0, 0]
|
22 | }
|
23 |
|
24 | function bump(what, version) {
|
25 | return what === 'MAJOR' ? major(version) : what === 'FEATURE' ? feature(version) :
|
26 | minor(version)
|
27 | }
|
28 |
|
29 |
|
30 | var old_version = pkg.version
|
31 |
|
32 | pkg.version = bump(process.argv[2], pkg.version.split('.')).join('.')
|
33 | write('package.json', JSON.stringify(pkg, null, 2))
|
34 |
|
35 | var readme = read('README.md').replace(/<\!-- \[release:\s*(.+?)\s*\] -->[\s\S]*?<\!-- \[\/release\] -->/, function(_, s) {
|
36 | return '<!-- [release: ' + s + '] -->\n' + '[release]: ' + s.replace(/\$VERSION/g, pkg.version) + '\n' + '<!-- [/release] -->'
|
37 | })
|
38 | write('README.md', readme)
|
39 |
|
40 | console.log('Bumped from ' + old_version + ' to ' + pkg.version) |
\ | No newline at end of file |