paco
Version:
Node package development/distribution utility kit
31 lines (25 loc) • 862 B
JavaScript
;
var exec = require('child_process').exec;
var Q = require('q');
module.exports.isCleanState = function () {
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var ignorePatterns = opts.ignorePatterns || [/^$/];
return Q.promise(function (resolve, reject) {
exec('git status -s .', function (err, stdout) {
if (err) {
return reject(err);
}
var changedFiles = stdout.split('\n');
var uncommitedFiles = changedFiles.filter(function (file) {
return ignorePatterns.map(function (pattern) {
return pattern.test(file);
}).filter(function (shouldIgnore) {
return shouldIgnore === false;
}).length;
}).filter(function (file) {
return file.trim();
});
resolve(uncommitedFiles.length === 0);
});
});
};