Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80522 views
1
var minimist = require('minimist');
2
3
module.exports = function parse (args, opts) {
4
var level = 0, index;
5
var args_ = [];
6
7
for (var i = 0; i < args.length; i++) {
8
if (typeof args[i] === 'string' && /^\[/.test(args[i])) {
9
if (level ++ === 0) {
10
index = i;
11
}
12
}
13
if (typeof args[i] === 'string' && /\]$/.test(args[i])) {
14
if (-- level > 0) continue;
15
16
var sub = args.slice(index, i + 1);
17
if (typeof sub[0] === 'string') {
18
sub[0] = sub[0].replace(/^\[/, '');
19
}
20
if (sub[0] === '') sub.shift();
21
22
var n = sub.length - 1;
23
if (typeof sub[n] === 'string') {
24
sub[n] = sub[n].replace(/\]$/, '');
25
}
26
if (sub[n] === '') sub.pop();
27
28
args_.push(parse(sub));
29
}
30
else if (level === 0) args_.push(args[i]);
31
}
32
33
var argv = minimist(args_, opts);
34
return argv;
35
};
36
37