jira-precommit-hook
Version:
Git commit hook to verify commit messages are tagged with a JIRA issue number
102 lines (70 loc) • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _fsUtils = require('./fs-utils.js');
var _fsPromise = require('fs-promise');
var _fsPromise2 = _interopRequireDefault(_fsPromise);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
var thisProjectsGitFolder, gitPath, hooksPath;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
thisProjectsGitFolder = _path2.default.resolve(_path2.default.join(__dirname, '../.git'));
gitPath = (0, _fsUtils.findParentFolder)(__dirname, '.git');
if (!(thisProjectsGitFolder === gitPath)) {
_context.next = 4;
break;
}
return _context.abrupt('return', 0);
case 4:
console.log('Installing JIRA pre-commit hook....');
_context.prev = 5;
gitPath = (0, _fsUtils.findParentFolder)(__dirname, '.git');
_context.next = 12;
break;
case 9:
_context.prev = 9;
_context.t0 = _context['catch'](5);
throw new Error('Your project needs a git repository to install the hook.');
case 12:
_context.next = 14;
return _fsPromise2.default.stat(gitPath);
case 14:
if (!_context.sent.isFile()) {
_context.next = 17;
break;
}
console.log('Attempting install to git worktree, please install in the ' + 'primary worktree directory.');
return _context.abrupt('return', 0);
case 17:
console.log('Found .git directory at: ' + gitPath);
hooksPath = _path2.default.join(gitPath, 'hooks');
(0, _fsUtils.verifyHooksFolder)(hooksPath);
_context.next = 22;
return (0, _fsUtils.copyHookFiles)(gitPath);
case 22:
console.log('Copied commit hook.');
return _context.abrupt('return', 0);
case 24:
case 'end':
return _context.stop();
}
}
}, _callee, this, [[5, 9]]);
}));
function install() {
return _ref.apply(this, arguments);
}
return install;
}();
module.exports = exports['default'];