UNPKG

paco

Version:

Node package development/distribution utility kit

31 lines (25 loc) 862 B
'use strict'; 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); }); }); };