'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _gulpGit = require('gulp-git');
var _gulpGit2 = _interopRequireDefault(_gulpGit);
var _gulp = require('gulp');
var _gulp2 = _interopRequireDefault(_gulp);
var _dedent = require('dedent');
var _dedent2 = _interopRequireDefault(_dedent);
var _commonUtil = require('../common/util');
exports.commit = commit;
/**
* Asynchronously git commit at a given path with a message
*/
function commit(sh, repoPath, message, options, done) {
var alreadyEnded = false;
var dedentedMessage = (0, _dedent2['default'])(message);
var operatingSystemNormalizedMessage = undefined;
// On windows we must use an array in gulp-git instead of a string because
// command line parsing works differently
Iif (_os2['default'].platform() == "win32") {
operatingSystemNormalizedMessage = dedentedMessage.split(/\r?\n/);
} else {
operatingSystemNormalizedMessage = dedentedMessage;
}
// Get a gulp stream based off the config
_gulp2['default'].src(repoPath)
// Format then commit
.pipe(_gulpGit2['default'].commit(operatingSystemNormalizedMessage, options))
// Write progress to the screen
.on('data', function (data) {
// Ignore this for code coverage since it is only there
// to make our testing suite pretty
/* istanbul ignore if */
Iif (!options.quiet) {
if ((0, _commonUtil.isString)(data)) {
process.stdout.write(data);
}
}
})
// Handle commit success
.on('end', function () {
// TODO: Bug? Done is fired twice :(
if (!alreadyEnded) {
done();
alreadyEnded = true;
}
})
// Handle commit failure
.on('error', function (err) {
console.error(err);
done(err);
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3RyYXZpcy9idWlsZC9jb21taXRpemVuL2N6LWNsaS9zcmMvZ2l0L2NvbW1pdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7a0JBQWUsSUFBSTs7Ozt1QkFDSCxVQUFVOzs7O29CQUNULE1BQU07Ozs7c0JBQ0osUUFBUTs7OzswQkFDSixnQkFBZ0I7O1FBRTlCLE1BQU0sR0FBTixNQUFNOzs7OztBQUtmLFNBQVMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7O0FBRXBELE1BQUksWUFBWSxHQUFHLEtBQUssQ0FBQztBQUN6QixNQUFJLGVBQWUsR0FBRyx5QkFBTyxPQUFPLENBQUMsQ0FBQztBQUN0QyxNQUFJLGdDQUFnQyxZQUFBLENBQUM7OztBQUdyQyxNQUFHLGdCQUFHLFFBQVEsRUFBRSxJQUFFLE9BQU8sRUFBRTtBQUN6QixvQ0FBZ0MsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ25FLE1BQU07QUFDTCxvQ0FBZ0MsR0FBRyxlQUFlLENBQUM7R0FDcEQ7OztBQUdELG9CQUFLLEdBQUcsQ0FBQyxRQUFRLENBQUM7OztHQUdmLElBQUksQ0FBQyxxQkFBSSxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxDQUFDLENBQUM7OztHQUczRCxFQUFFLENBQUMsTUFBTSxFQUFDLFVBQVMsSUFBSSxFQUFFOzs7OztBQUt4QixRQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtBQUNqQixVQUFHLDBCQUFTLElBQUksQ0FBQyxFQUNqQjtBQUNDLGVBQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO09BQzNCO0tBQ0Y7R0FDRixDQUFDOzs7R0FHRCxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVc7O0FBRXBCLFFBQUcsQ0FBQyxZQUFZLEVBQ2hCO0FBQ0UsVUFBSSxFQUFFLENBQUM7QUFDUCxrQkFBWSxHQUFDLElBQUksQ0FBQztLQUNuQjtHQUNGLENBQUM7OztHQUdELEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLEVBQUU7QUFDMUIsV0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQixRQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7R0FDWCxDQUFDLENBQUM7Q0FFTiIsImZpbGUiOiIvaG9tZS90cmF2aXMvYnVpbGQvY29tbWl0aXplbi9jei1jbGkvc3JjL2dpdC9jb21taXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IGdpdCBmcm9tICdndWxwLWdpdCc7XG5pbXBvcnQgZ3VscCBmcm9tICdndWxwJztcbmltcG9ydCBkZWRlbnQgZnJvbSAnZGVkZW50JztcbmltcG9ydCB7aXNTdHJpbmd9IGZyb20gJy4uL2NvbW1vbi91dGlsJztcblxuZXhwb3J0IHsgY29tbWl0IH07XG5cbi8qKlxuICogQXN5bmNocm9ub3VzbHkgZ2l0IGNvbW1pdCBhdCBhIGdpdmVuIHBhdGggd2l0aCBhIG1lc3NhZ2VcbiAqL1xuZnVuY3Rpb24gY29tbWl0KHNoLCByZXBvUGF0aCwgbWVzc2FnZSwgb3B0aW9ucywgZG9uZSkge1xuXG4gIHZhciBhbHJlYWR5RW5kZWQgPSBmYWxzZTtcbiAgbGV0IGRlZGVudGVkTWVzc2FnZSA9IGRlZGVudChtZXNzYWdlKTtcbiAgbGV0IG9wZXJhdGluZ1N5c3RlbU5vcm1hbGl6ZWRNZXNzYWdlO1xuICAvLyBPbiB3aW5kb3dzIHdlIG11c3QgdXNlIGFuIGFycmF5IGluIGd1bHAtZ2l0IGluc3RlYWQgb2YgYSBzdHJpbmcgYmVjYXVzZVxuICAvLyBjb21tYW5kIGxpbmUgcGFyc2luZyB3b3JrcyBkaWZmZXJlbnRseVxuICBpZihvcy5wbGF0Zm9ybSgpPT1cIndpbjMyXCIpIHtcbiAgICBvcGVyYXRpbmdTeXN0ZW1Ob3JtYWxpemVkTWVzc2FnZSA9IGRlZGVudGVkTWVzc2FnZS5zcGxpdCgvXFxyP1xcbi8pO1xuICB9IGVsc2Uge1xuICAgIG9wZXJhdGluZ1N5c3RlbU5vcm1hbGl6ZWRNZXNzYWdlID0gZGVkZW50ZWRNZXNzYWdlO1xuICB9XG4gIFxuICAvLyBHZXQgYSBndWxwIHN0cmVhbSBiYXNlZCBvZmYgdGhlIGNvbmZpZ1xuICBndWxwLnNyYyhyZXBvUGF0aClcblxuICAgIC8vIEZvcm1hdCB0aGVuIGNvbW1pdFxuICAgIC5waXBlKGdpdC5jb21taXQob3BlcmF0aW5nU3lzdGVtTm9ybWFsaXplZE1lc3NhZ2UsIG9wdGlvbnMpKVxuICAgIFxuICAgIC8vIFdyaXRlIHByb2dyZXNzIHRvIHRoZSBzY3JlZW5cbiAgICAub24oJ2RhdGEnLGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgIFxuICAgICAgLy8gSWdub3JlIHRoaXMgZm9yIGNvZGUgY292ZXJhZ2Ugc2luY2UgaXQgaXMgb25seSB0aGVyZSBcbiAgICAgIC8vIHRvIG1ha2Ugb3VyIHRlc3Rpbmcgc3VpdGUgcHJldHR5XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gICAgICBpZighb3B0aW9ucy5xdWlldCkge1xuICAgICAgICBpZihpc1N0cmluZyhkYXRhKSlcbiAgICAgICAge1xuICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZGF0YSk7IFxuICAgICAgICB9IFxuICAgICAgfVxuICAgIH0pXG4gICAgXG4gICAgLy8gSGFuZGxlIGNvbW1pdCBzdWNjZXNzXG4gICAgLm9uKCdlbmQnLCBmdW5jdGlvbigpIHtcbiAgICAgIC8vIFRPRE86IEJ1Zz8gRG9uZSBpcyBmaXJlZCB0d2ljZSA6KFxuICAgICAgaWYoIWFscmVhZHlFbmRlZClcbiAgICAgIHtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgICBhbHJlYWR5RW5kZWQ9dHJ1ZTsgXG4gICAgICB9XG4gICAgfSlcbiAgICBcbiAgICAvLyBIYW5kbGUgY29tbWl0IGZhaWx1cmVcbiAgICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgZG9uZShlcnIpO1xuICAgIH0pO1xuXG59Il19 |