UNPKG

1.6 kBPlain TextView Raw
1#!/usr/bin/env node
2
3var fs = require('fs');
4var path = require('path');
5var semver = require('semver');
6var request = require('request');
7var exec = require('child_process').exec;
8
9var url = 'https://raw.github.com/rogerwang/node-webkit/master/README.md';
10var pkgpath = path.join(__dirname, '..', 'package.json');
11
12// Download README file
13var readme = request(url);
14var data = '';
15readme.on('data', function(buf) { data += buf; });
16readme.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});