mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-28 00:40:07 +02:00
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
var _ = require('underscore');
|
|
var intl = require('../intl');
|
|
|
|
var GitCommands = require('../git/commands');
|
|
|
|
var Errors = require('../util/errors');
|
|
var GitError = Errors.GitError;
|
|
|
|
function DisabledMap(options) {
|
|
options = options || {};
|
|
this.disabledMap = options.disabledMap || {
|
|
'git cherry-pick': true,
|
|
'git rebase': true
|
|
};
|
|
}
|
|
|
|
DisabledMap.prototype.getInstantCommands = function() {
|
|
// this produces an array of regex / function pairs that can be
|
|
// piped into a parse waterfall to disable certain git commmands
|
|
// :D
|
|
var instants = [];
|
|
var onMatch = function() {
|
|
throw new GitError({
|
|
msg: intl.str('command-disabled')
|
|
});
|
|
};
|
|
|
|
_.each(this.disabledMap, function(val, disabledCommand) {
|
|
// XXX get hold of vcs from disabledMap
|
|
var vcs = 'git';
|
|
disabledCommand = disabledCommand.slice(vcs.length + 1);
|
|
var gitRegex = GitCommands.commands.getRegexMap()[vcs][disabledCommand];
|
|
if (!gitRegex) {
|
|
throw new Error('wuttttt this disbaled command' + disabledCommand +
|
|
' has no regex matching');
|
|
}
|
|
instants.push([gitRegex, onMatch]);
|
|
});
|
|
return instants;
|
|
};
|
|
|
|
exports.DisabledMap = DisabledMap;
|
|
|