fixes #1752: passing POSIX-style arguments to scripts through the CLI

This commit is contained in:
Michael Ficarra 2011-10-06 04:11:41 -04:00
parent cf996d2c4a
commit e686e3f6e9
2 changed files with 8 additions and 6 deletions

View File

@ -9,16 +9,17 @@
}
OptionParser.prototype.parse = function(args) {
var arg, i, isOption, matchedRule, options, rule, value, _i, _len, _len2, _ref;
var arg, i, isOption, matchedRule, options, originalArgs, rule, value, _i, _len, _len2, _ref;
options = {
arguments: [],
literals: []
};
originalArgs = args;
args = normalizeArguments(args);
for (i = 0, _len = args.length; i < _len; i++) {
arg = args[i];
if (arg === '--') {
options.literals = args.slice(i + 1);
options.literals = originalArgs.slice(1 + originalArgs.indexOf('--'));
break;
}
isOption = !!(arg.match(LONG_FLAG) || arg.match(SHORT_FLAG));
@ -37,7 +38,7 @@
throw new Error("unrecognized option: " + arg);
}
if (!isOption) {
options.arguments = args.slice(i);
options.arguments = originalArgs.slice(originalArgs.indexOf(arg));
break;
}
}

View File

@ -25,10 +25,11 @@ exports.OptionParser = class OptionParser
# for interpreting the options object.
parse: (args) ->
options = arguments: [], literals: []
args = normalizeArguments args
originalArgs = args
args = normalizeArguments args
for arg, i in args
if arg is '--'
options.literals = args[(i + 1)..]
options.literals = originalArgs[(1 + originalArgs.indexOf '--')..]
break
isOption = !!(arg.match(LONG_FLAG) or arg.match(SHORT_FLAG))
matchedRule = no
@ -40,7 +41,7 @@ exports.OptionParser = class OptionParser
break
throw new Error "unrecognized option: #{arg}" if isOption and not matchedRule
if not isOption
options.arguments = args.slice i
options.arguments = originalArgs[(originalArgs.indexOf arg)..]
break
options