Skip to content

Commit

Permalink
Merge 15a7791 into a40b69c
Browse files Browse the repository at this point in the history
  • Loading branch information
xudafeng committed Jan 9, 2018
2 parents a40b69c + 15a7791 commit 547624e
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 95 deletions.
5 changes: 0 additions & 5 deletions .npmignore
@@ -1,10 +1,5 @@
coverage.html
lib-cov/
node_modules
.travis.yml
.drone.yml
examples/
Makefile
.jshintrc
.jshintignore
coverage/
Expand Down
5 changes: 3 additions & 2 deletions .travis.yml
@@ -1,8 +1,9 @@
language: node_js
sudo: false
node_js:
- 7
- 8
script:
- make travis
- npm i
- npm run ci
after_script:
- npm install coveralls@2 && cat ./coverage/lcov.info | coveralls
23 changes: 0 additions & 23 deletions Makefile

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -12,7 +12,7 @@
[travis-url]: https://travis-ci.org/macacajs/gradle
[coveralls-image]: https://img.shields.io/coveralls/macacajs/gradle.svg?style=flat-square
[coveralls-url]: https://coveralls.io/r/macacajs/gradle?branch=master
[node-image]: https://img.shields.io/badge/node.js-%3E=_6-green.svg?style=flat-square
[node-image]: https://img.shields.io/badge/node.js-%3E=_8-green.svg?style=flat-square
[node-url]: http://nodejs.org/download/
[download-image]: https://img.shields.io/npm/dm/gradle.svg?style=flat-square
[download-url]: https://npmjs.org/package/gradle
Expand Down
59 changes: 22 additions & 37 deletions lib/gradle.js
@@ -1,8 +1,8 @@
'use strict';

var fs = require('fs');
var path = require('path');
var spawn = require('win-spawn');
const path = require('path');
const spawn = require('cross-spawn');
const child_process = require('child_process');

const _ = require('./helper');

Expand All @@ -15,57 +15,42 @@ const checkEnv = options => {
options.gradle = 'gradle';
resolve(options);
} else {
console.log('please set GRADLE_HOME');
resolve();
reject('please install gradle');
}
} else {
_.exec(`which gradle`).then(gradle => {
options.gradle = gradle;
try {
const res = child_process.execSync('which gradle');
options.gradle = res.toString().trim();
resolve(options);
});
} catch (e) {
reject('please install gradle');
}
}
});
};

const gradleBuild = options => {
return new Promise((resolve, reject) => {
var cwd = path.resolve(options.cwd);
var gradleProcess = spawn(options.gradle, options.args || ['assembleDebug'], {
cwd: cwd
});

gradleProcess.on('error', function(err) {
reject(err);
});

gradleProcess.stdout.setEncoding('utf8');
gradleProcess.stderr.setEncoding('utf8');

gradleProcess.stdout.on('data', function(data) {
console.log(data.trim());
if (/BUILD\s+FAILED/.test(data.trim())) {
process.exit(1);
}
});

gradleProcess.stderr.on('data', function(data) {
console.log(data.trim());
});
try {
var gradleProcess = spawn.sync(options.gradle, options.args || ['assembleDebug'], {
cwd: cwd
});
const str = gradleProcess.output.toString();

gradleProcess.on('exit', function(code) {
if (code !== 0) {
reject(new Error('build failed'));
if (/BUILD\s+FAILED/.test(str.trim())) {
reject(str);
} else {
resolve('build success!');
resolve(str);
}
});
} catch (e) {
reject(e);
}
});
};

module.exports = options => {
return checkEnv(options)
.then(gradleBuild)
.catch(e => {
console.log(e);
});
.then(gradleBuild);
};
16 changes: 0 additions & 16 deletions lib/helper.js
@@ -1,23 +1,7 @@
'use strict';

const EOL = require('os').EOL;
const util = require('xutil');
const childProcess = require('child_process');

const _ = util.merge({}, util);

_.exec = function(cmd, opts) {
return new Promise((resolve, reject) => {
childProcess.exec(cmd, _.merge({
maxBuffer: 1024 * 512,
wrapArgs: false
}, opts || {}), (err, stdout) => {
if (err) {
return reject(err);
}
resolve(stdout.trim());
});
});
};

module.exports = _;
11 changes: 5 additions & 6 deletions package.json
Expand Up @@ -11,23 +11,22 @@
"url": "git://github.com/macacajs/gradle.git"
},
"dependencies": {
"win-spawn": "^2.0.0",
"cross-spawn": "^5.1.0",
"xutil": "^1.0.3"
},
"devDependencies": {
"co-mocha": "*",
"mocha": "*",
"should": "*",
"jshint": "*",
"istanbul": "*",
"pre-commit": "*"
},
"scripts": {
"test": "make test",
"jshint": "make jshint"
"test": "istanbul cover `npm bin`/_mocha",
"lint": "jshint .",
"ci": "npm run lint && npm run test"
},
"pre-commit": [
"jshint"
"lint"
],
"license": "MIT"
}
19 changes: 16 additions & 3 deletions test/gradle.test.js
@@ -1,7 +1,20 @@
'use strict';

var gradle = require('..');
const gradle = require('..');
const assert = require('assert');

gradle({
cwd: process.cwd()
describe('test', () => {
it('should be ok', () => {
assert.ok(gradle);
gradle({
cwd: process.cwd()
})
.then(d => {
console.log(d);
})
.catch(e => {
console.log(e);
});
});
});

3 changes: 1 addition & 2 deletions test/mocha.opts
@@ -1,2 +1 @@
--require should
--reporter spec
--reporter spec

0 comments on commit 547624e

Please sign in to comment.