Code coverage report for src/git/commit.js

Statements: 89.66% (26 / 29)      Branches: 91.67% (11 / 12)      Functions: 80% (4 / 5)      Lines: 89.29% (25 / 28)      Ignored: 2 statements, 4 branches     

All files » src/git/ » commit.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80    1         4   1   1   1   1   1   1   1   1   1   1         1   2 2 2     2     2       2                     3 1 1               4 2 2                    
'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