Resolves #381 -- better validation of args for git fakeTeamwork

This commit is contained in:
Peter Cottle 2016-07-06 21:18:13 -07:00
parent a90358ac1f
commit d302887fd1

View file

@ -26,6 +26,10 @@ var validateBranchName = function(engine, name) {
return engine.validateBranchName(name); return engine.validateBranchName(name);
}; };
var validateOriginBranchName = function(engine, name) {
return engine.origin.validateBranchName(name);
};
var validateBranchNameIfNeeded = function(engine, name) { var validateBranchNameIfNeeded = function(engine, name) {
if (engine.refs[name]) { if (engine.refs[name]) {
return name; return name;
@ -279,10 +283,39 @@ var commandConfig = {
} }
command.validateArgBounds(generalArgs, 0, 2); command.validateArgBounds(generalArgs, 0, 2);
// allow formats of: git Faketeamwork 2 or git Faketeamwork side 3 var branch;
var branch = (engine.origin.refs[generalArgs[0]]) ? var numToMake;
generalArgs[0] : 'master';
var numToMake = parseInt(generalArgs[0], 10) || generalArgs[1] || 1; // allow formats of: git fakeTeamwork 2 or git fakeTeamwork side 3
switch (generalArgs.length) {
// git fakeTeamwork
case 0:
branch = 'master';
numToMake = 1;
break;
// git fakeTeamwork 10 or git fakeTeamwork foo
case 1:
if (isNaN(parseInt(generalArgs[0], 10))) {
branch = validateOriginBranchName(engine, generalArgs[0]);
numToMake = 1;
} else {
numToMake = parseInt(generalArgs[0], 10);
branch = 'master';
}
break;
case 2:
branch = validateOriginBranchName(engine, generalArgs[0]);
if (isNaN(parseInt(generalArgs[1], 10))) {
throw new GitError({
msg: 'Bad numeric argument: ' + generalArgs[1]
});
}
numToMake = parseInt(generalArgs[1], 10);
break;
}
// make sure its a branch and exists // make sure its a branch and exists
var destBranch = engine.origin.resolveID(branch); var destBranch = engine.origin.resolveID(branch);