1 | #!/usr/bin/env node
|
2 |
|
3 | var fs = require('fs');
|
4 | var path = require('path');
|
5 | var semver = require('semver');
|
6 | var request = require('request');
|
7 | var exec = require('child_process').exec;
|
8 |
|
9 | var url = 'https://raw.github.com/rogerwang/node-webkit/master/README.md';
|
10 | var pkgpath = path.join(__dirname, '..', 'package.json');
|
11 |
|
12 | // Download README file
|
13 | var readme = request(url);
|
14 | var data = '';
|
15 | readme.on('data', function(buf) { data += buf; });
|
16 | readme.on('end', function() {
|
17 | var version = semver.clean(/\[v([^\s]+)\s+release notes\]/i.exec(data)[1]);
|
18 | // Version invalid so quit
|
19 | if (!semver.valid(version)) {
|
20 | console.error('INVALID VERSION: ' + version);
|
21 | process.exit();
|
22 | }
|
23 | var pkg = require(pkgpath);
|
24 | var currentversion = pkg.version;
|
25 | if (semver.gt(version, pkg.version)) {
|
26 | // Write new version to package.json
|
27 | pkg.version = version;
|
28 | fs.writeFileSync(pkgpath, JSON.stringify(pkg, null, 2));
|
29 |
|
30 | console.log('PUBLISHING NEW VERSION ' + version);
|
31 |
|
32 | var cmd = [
|
33 | 'git add package.json',
|
34 | 'git commit -m "v' + version + '"',
|
35 | 'git push origin master',
|
36 | 'npm publish',
|
37 | ].join(' && ');
|
38 | exec(cmd, { cwd: path.resolve(__dirname, '..') }, function(err, stdout, stderr) {
|
39 | if (err || stderr) {
|
40 | // Revert package.json change and try again next time
|
41 | console.error('FAILED');
|
42 | console.error(err || stderr);
|
43 | pkg.version = currentversion;
|
44 | fs.writeFileSync(pkgpath, JSON.stringify(pkg, null, 2));
|
45 | // TODO: Should revert commit here as well
|
46 | } else {
|
47 | console.log('SUCCESS');
|
48 | }
|
49 | });
|
50 | }
|
51 | });
|