c4cf16c3e3
* directly depend on route-recognizer * add path encode helper using route-recognizer normalizer methods * encode user-entered paths/ids for places we're not using the built-in ember data buildUrl method * encode secret link params * decode params from the url, and encode for linked-block and navigate-input components * add escape-string-regexp * use list-controller mixin and escape the string when contructing new Regex objects * encode paths in the console service * add acceptance tests for kv secrets * make encoding in linked-block an attribute, and use it on secret lists * egp endpoints are enterprise-only, so include 'enterprise' text in the test * fix routing test and exclude single quote from encoding tests * encode cli string before tokenizing * encode auth_path for use with urlFor * add test for single quote via UI input instead of web cli
39 lines
833 B
JavaScript
39 lines
833 B
JavaScript
export default function(argString) {
|
|
if (Array.isArray(argString)) return argString;
|
|
|
|
argString = argString.trim();
|
|
|
|
var i = 0;
|
|
var prevC = null;
|
|
var c = null;
|
|
var opening = null;
|
|
var args = [];
|
|
|
|
for (var ii = 0; ii < argString.length; ii++) {
|
|
prevC = c;
|
|
c = argString.charAt(ii);
|
|
|
|
// split on spaces unless we're in quotes.
|
|
if (c === ' ' && !opening) {
|
|
if (!(prevC === ' ')) {
|
|
i++;
|
|
}
|
|
continue;
|
|
}
|
|
|
|
// don't split the string if we're in matching
|
|
// opening or closing single and double quotes.
|
|
if (c === opening) {
|
|
if (!args[i]) args[i] = '';
|
|
opening = null;
|
|
} else if ((c === "'" || c === '"') && argString.indexOf(c, ii + 1) > 0 && !opening) {
|
|
opening = c;
|
|
}
|
|
|
|
if (!args[i]) args[i] = '';
|
|
args[i] += c;
|
|
}
|
|
|
|
return args;
|
|
}
|