longdown 2023.4.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +10 -0
- package/README.md +77 -0
- package/bin/cli.js +3 -0
- package/lib/cli.js +120 -0
- package/lib/cljs-runtime/cljs.core.js +38285 -0
- package/lib/cljs-runtime/cljs.core.js.map +1 -0
- package/lib/cljs-runtime/cljs_env.js +1268 -0
- package/lib/cljs-runtime/clojure.string.js +477 -0
- package/lib/cljs-runtime/clojure.string.js.map +1 -0
- package/lib/cljs-runtime/clojure.tools.cli.js +1684 -0
- package/lib/cljs-runtime/clojure.tools.cli.js.map +1 -0
- package/lib/cljs-runtime/clojure.walk.js +131 -0
- package/lib/cljs-runtime/clojure.walk.js.map +1 -0
- package/lib/cljs-runtime/goog.array.array.js +658 -0
- package/lib/cljs-runtime/goog.array.array.js.map +9 -0
- package/lib/cljs-runtime/goog.asserts.asserts.js +131 -0
- package/lib/cljs-runtime/goog.asserts.asserts.js.map +9 -0
- package/lib/cljs-runtime/goog.asserts.dom.js +87 -0
- package/lib/cljs-runtime/goog.asserts.dom.js.map +9 -0
- package/lib/cljs-runtime/goog.base.js +1242 -0
- package/lib/cljs-runtime/goog.base.js.map +9 -0
- package/lib/cljs-runtime/goog.collections.maps.js +79 -0
- package/lib/cljs-runtime/goog.collections.maps.js.map +9 -0
- package/lib/cljs-runtime/goog.debug.error.js +29 -0
- package/lib/cljs-runtime/goog.debug.error.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.asserts.js +39 -0
- package/lib/cljs-runtime/goog.dom.asserts.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.element.js +67 -0
- package/lib/cljs-runtime/goog.dom.element.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.htmlelement.js +6 -0
- package/lib/cljs-runtime/goog.dom.htmlelement.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.nodetype.js +5 -0
- package/lib/cljs-runtime/goog.dom.nodetype.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.safe.js +265 -0
- package/lib/cljs-runtime/goog.dom.safe.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.tagname.js +146 -0
- package/lib/cljs-runtime/goog.dom.tagname.js.map +9 -0
- package/lib/cljs-runtime/goog.dom.tags.js +9 -0
- package/lib/cljs-runtime/goog.dom.tags.js.map +9 -0
- package/lib/cljs-runtime/goog.flags.flags.js +11 -0
- package/lib/cljs-runtime/goog.flags.flags.js.map +9 -0
- package/lib/cljs-runtime/goog.fs.blob.js +37 -0
- package/lib/cljs-runtime/goog.fs.blob.js.map +9 -0
- package/lib/cljs-runtime/goog.fs.url.js +36 -0
- package/lib/cljs-runtime/goog.fs.url.js.map +9 -0
- package/lib/cljs-runtime/goog.functions.functions.js +210 -0
- package/lib/cljs-runtime/goog.functions.functions.js.map +9 -0
- package/lib/cljs-runtime/goog.html.safehtml.js +306 -0
- package/lib/cljs-runtime/goog.html.safehtml.js.map +9 -0
- package/lib/cljs-runtime/goog.html.safescript.js +61 -0
- package/lib/cljs-runtime/goog.html.safescript.js.map +9 -0
- package/lib/cljs-runtime/goog.html.safestyle.js +170 -0
- package/lib/cljs-runtime/goog.html.safestyle.js.map +9 -0
- package/lib/cljs-runtime/goog.html.safestylesheet.js +93 -0
- package/lib/cljs-runtime/goog.html.safestylesheet.js.map +9 -0
- package/lib/cljs-runtime/goog.html.safeurl.js +225 -0
- package/lib/cljs-runtime/goog.html.safeurl.js.map +9 -0
- package/lib/cljs-runtime/goog.html.trustedresourceurl.js +113 -0
- package/lib/cljs-runtime/goog.html.trustedresourceurl.js.map +9 -0
- package/lib/cljs-runtime/goog.html.trustedtypes.js +15 -0
- package/lib/cljs-runtime/goog.html.trustedtypes.js.map +9 -0
- package/lib/cljs-runtime/goog.html.uncheckedconversions.js +43 -0
- package/lib/cljs-runtime/goog.html.uncheckedconversions.js.map +9 -0
- package/lib/cljs-runtime/goog.labs.useragent.browser.js +332 -0
- package/lib/cljs-runtime/goog.labs.useragent.browser.js.map +9 -0
- package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +13 -0
- package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +9 -0
- package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +72 -0
- package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +9 -0
- package/lib/cljs-runtime/goog.labs.useragent.useragent.js +20 -0
- package/lib/cljs-runtime/goog.labs.useragent.useragent.js.map +9 -0
- package/lib/cljs-runtime/goog.labs.useragent.util.js +77 -0
- package/lib/cljs-runtime/goog.labs.useragent.util.js.map +9 -0
- package/lib/cljs-runtime/goog.math.integer.js +425 -0
- package/lib/cljs-runtime/goog.math.integer.js.map +9 -0
- package/lib/cljs-runtime/goog.math.long.js +427 -0
- package/lib/cljs-runtime/goog.math.long.js.map +9 -0
- package/lib/cljs-runtime/goog.object.object.js +283 -0
- package/lib/cljs-runtime/goog.object.object.js.map +9 -0
- package/lib/cljs-runtime/goog.reflect.reflect.js +31 -0
- package/lib/cljs-runtime/goog.reflect.reflect.js.map +9 -0
- package/lib/cljs-runtime/goog.string.const.js +33 -0
- package/lib/cljs-runtime/goog.string.const.js.map +9 -0
- package/lib/cljs-runtime/goog.string.internal.js +118 -0
- package/lib/cljs-runtime/goog.string.internal.js.map +9 -0
- package/lib/cljs-runtime/goog.string.string.js +458 -0
- package/lib/cljs-runtime/goog.string.string.js.map +9 -0
- package/lib/cljs-runtime/goog.string.stringbuffer.js +31 -0
- package/lib/cljs-runtime/goog.string.stringbuffer.js.map +9 -0
- package/lib/cljs-runtime/goog.string.stringformat.js +74 -0
- package/lib/cljs-runtime/goog.string.stringformat.js.map +9 -0
- package/lib/cljs-runtime/goog.string.typedstring.js +8 -0
- package/lib/cljs-runtime/goog.string.typedstring.js.map +9 -0
- package/lib/cljs-runtime/goog.structs.structs.js +188 -0
- package/lib/cljs-runtime/goog.structs.structs.js.map +9 -0
- package/lib/cljs-runtime/goog.uri.uri.js +616 -0
- package/lib/cljs-runtime/goog.uri.uri.js.map +9 -0
- package/lib/cljs-runtime/goog.uri.utils.js +320 -0
- package/lib/cljs-runtime/goog.uri.utils.js.map +9 -0
- package/lib/cljs-runtime/longdown.cli.js +128 -0
- package/lib/cljs-runtime/longdown.cli.js.map +1 -0
- package/lib/cljs-runtime/longdown.lib.js +122 -0
- package/lib/cljs-runtime/longdown.lib.js.map +1 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_from_markdown.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_from_markdown.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$node_fs.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$node_fs.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$node_path.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$node_path.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$remark_parse.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$remark_parse.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$remark_stringify.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$remark_stringify.js.map +9 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$unified.js +5 -0
- package/lib/cljs-runtime/shadow.esm.esm_import$unified.js.map +9 -0
- package/lib/cljs-runtime/shadow.module.cli.append.js +1 -0
- package/lib/cljs-runtime/shadow.module.cli.prepend.js +17 -0
- package/lib/cljs-runtime/shadow.module.lib.append.js +1 -0
- package/lib/cljs-runtime/shadow.module.lib.prepend.js +2 -0
- package/lib/lib.js +8 -0
- package/package.json +33 -0
|
@@ -0,0 +1,1684 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
goog.provide('clojure.tools.cli');
|
|
3
|
+
/**
|
|
4
|
+
* Reduce arguments sequence into [opt-type opt ?optarg?] vectors and a vector
|
|
5
|
+
* of remaining arguments. Returns as [option-tokens remaining-args].
|
|
6
|
+
*
|
|
7
|
+
* Expands clumped short options like "-abc" into:
|
|
8
|
+
* [[:short-opt "-a"] [:short-opt "-b"] [:short-opt "-c"]]
|
|
9
|
+
*
|
|
10
|
+
* If "-b" were in the set of options that require arguments, "-abc" would
|
|
11
|
+
* then be interpreted as: [[:short-opt "-a"] [:short-opt "-b" "c"]]
|
|
12
|
+
*
|
|
13
|
+
* Long options with `=` are always parsed as option + optarg, even if nothing
|
|
14
|
+
* follows the `=` sign.
|
|
15
|
+
*
|
|
16
|
+
* If the :in-order flag is true, the first non-option, non-optarg argument
|
|
17
|
+
* stops options processing. This is useful for handling subcommand options.
|
|
18
|
+
*/
|
|
19
|
+
clojure.tools.cli.tokenize_args = (function clojure$tools$cli$tokenize_args(var_args){
|
|
20
|
+
var args__5775__auto__ = [];
|
|
21
|
+
var len__5769__auto___21810 = arguments.length;
|
|
22
|
+
var i__5770__auto___21811 = (0);
|
|
23
|
+
while(true){
|
|
24
|
+
if((i__5770__auto___21811 < len__5769__auto___21810)){
|
|
25
|
+
args__5775__auto__.push((arguments[i__5770__auto___21811]));
|
|
26
|
+
|
|
27
|
+
var G__21812 = (i__5770__auto___21811 + (1));
|
|
28
|
+
i__5770__auto___21811 = G__21812;
|
|
29
|
+
continue;
|
|
30
|
+
} else {
|
|
31
|
+
}
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var argseq__5776__auto__ = ((((2) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((2)),(0),null)):null);
|
|
36
|
+
return clojure.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5776__auto__);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
(clojure.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic = (function (required_set,args,options){
|
|
40
|
+
var map__21508 = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,options);
|
|
41
|
+
var map__21508__$1 = cljs.core.__destructure_map(map__21508);
|
|
42
|
+
var in_order = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21508__$1,new cljs.core.Keyword(null,"in-order","in-order",-1605651796));
|
|
43
|
+
var opts = cljs.core.PersistentVector.EMPTY;
|
|
44
|
+
var argv = cljs.core.PersistentVector.EMPTY;
|
|
45
|
+
var G__21512 = args;
|
|
46
|
+
var vec__21513 = G__21512;
|
|
47
|
+
var seq__21514 = cljs.core.seq(vec__21513);
|
|
48
|
+
var first__21515 = cljs.core.first(seq__21514);
|
|
49
|
+
var seq__21514__$1 = cljs.core.next(seq__21514);
|
|
50
|
+
var car = first__21515;
|
|
51
|
+
var cdr = seq__21514__$1;
|
|
52
|
+
var opts__$1 = opts;
|
|
53
|
+
var argv__$1 = argv;
|
|
54
|
+
var G__21512__$1 = G__21512;
|
|
55
|
+
while(true){
|
|
56
|
+
var opts__$2 = opts__$1;
|
|
57
|
+
var argv__$2 = argv__$1;
|
|
58
|
+
var vec__21562 = G__21512__$1;
|
|
59
|
+
var seq__21563 = cljs.core.seq(vec__21562);
|
|
60
|
+
var first__21564 = cljs.core.first(seq__21563);
|
|
61
|
+
var seq__21563__$1 = cljs.core.next(seq__21563);
|
|
62
|
+
var car__$1 = first__21564;
|
|
63
|
+
var cdr__$1 = seq__21563__$1;
|
|
64
|
+
if(cljs.core.truth_(car__$1)){
|
|
65
|
+
var pred__21565 = cljs.core.re_seq;
|
|
66
|
+
var expr__21566 = car__$1;
|
|
67
|
+
if(cljs.core.truth_((function (){var G__21568 = /^--$/;
|
|
68
|
+
var G__21569 = expr__21566;
|
|
69
|
+
return (pred__21565.cljs$core$IFn$_invoke$arity$2 ? pred__21565.cljs$core$IFn$_invoke$arity$2(G__21568,G__21569) : pred__21565.call(null,G__21568,G__21569));
|
|
70
|
+
})())){
|
|
71
|
+
var G__21813 = opts__$2;
|
|
72
|
+
var G__21814 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(argv__$2,cdr__$1);
|
|
73
|
+
var G__21815 = cljs.core.PersistentVector.EMPTY;
|
|
74
|
+
opts__$1 = G__21813;
|
|
75
|
+
argv__$1 = G__21814;
|
|
76
|
+
G__21512__$1 = G__21815;
|
|
77
|
+
continue;
|
|
78
|
+
} else {
|
|
79
|
+
if(cljs.core.truth_((function (){var G__21571 = /^--\S+=/;
|
|
80
|
+
var G__21572 = expr__21566;
|
|
81
|
+
return (pred__21565.cljs$core$IFn$_invoke$arity$2 ? pred__21565.cljs$core$IFn$_invoke$arity$2(G__21571,G__21572) : pred__21565.call(null,G__21571,G__21572));
|
|
82
|
+
})())){
|
|
83
|
+
var G__21817 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(opts__$2,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"long-opt","long-opt",-386094553)], null),clojure.string.split.cljs$core$IFn$_invoke$arity$3(car__$1,/=/,(2))));
|
|
84
|
+
var G__21818 = argv__$2;
|
|
85
|
+
var G__21819 = cdr__$1;
|
|
86
|
+
opts__$1 = G__21817;
|
|
87
|
+
argv__$1 = G__21818;
|
|
88
|
+
G__21512__$1 = G__21819;
|
|
89
|
+
continue;
|
|
90
|
+
} else {
|
|
91
|
+
if(cljs.core.truth_((function (){var G__21574 = /^--/;
|
|
92
|
+
var G__21575 = expr__21566;
|
|
93
|
+
return (pred__21565.cljs$core$IFn$_invoke$arity$2 ? pred__21565.cljs$core$IFn$_invoke$arity$2(G__21574,G__21575) : pred__21565.call(null,G__21574,G__21575));
|
|
94
|
+
})())){
|
|
95
|
+
var vec__21576 = ((cljs.core.contains_QMARK_(required_set,car__$1))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(cdr__$1),cljs.core.rest(cdr__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cdr__$1], null));
|
|
96
|
+
var optarg = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21576,(0),null);
|
|
97
|
+
var cdr__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21576,(1),null);
|
|
98
|
+
var G__21820 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(opts__$2,cljs.core.into.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),car__$1], null),(cljs.core.truth_(optarg)?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [optarg], null):cljs.core.PersistentVector.EMPTY)));
|
|
99
|
+
var G__21821 = argv__$2;
|
|
100
|
+
var G__21822 = cdr__$2;
|
|
101
|
+
opts__$1 = G__21820;
|
|
102
|
+
argv__$1 = G__21821;
|
|
103
|
+
G__21512__$1 = G__21822;
|
|
104
|
+
continue;
|
|
105
|
+
} else {
|
|
106
|
+
if(cljs.core.truth_((function (){var G__21579 = /^-./;
|
|
107
|
+
var G__21580 = expr__21566;
|
|
108
|
+
return (pred__21565.cljs$core$IFn$_invoke$arity$2 ? pred__21565.cljs$core$IFn$_invoke$arity$2(G__21579,G__21580) : pred__21565.call(null,G__21579,G__21580));
|
|
109
|
+
})())){
|
|
110
|
+
var vec__21581 = (function (){var os = cljs.core.PersistentVector.EMPTY;
|
|
111
|
+
var G__21587 = cljs.core.rest(car__$1);
|
|
112
|
+
var vec__21588 = G__21587;
|
|
113
|
+
var seq__21589 = cljs.core.seq(vec__21588);
|
|
114
|
+
var first__21590 = cljs.core.first(seq__21589);
|
|
115
|
+
var seq__21589__$1 = cljs.core.next(seq__21589);
|
|
116
|
+
var c = first__21590;
|
|
117
|
+
var cs = seq__21589__$1;
|
|
118
|
+
var os__$1 = os;
|
|
119
|
+
var G__21587__$1 = G__21587;
|
|
120
|
+
while(true){
|
|
121
|
+
var os__$2 = os__$1;
|
|
122
|
+
var vec__21599 = G__21587__$1;
|
|
123
|
+
var seq__21600 = cljs.core.seq(vec__21599);
|
|
124
|
+
var first__21601 = cljs.core.first(seq__21600);
|
|
125
|
+
var seq__21600__$1 = cljs.core.next(seq__21600);
|
|
126
|
+
var c__$1 = first__21601;
|
|
127
|
+
var cs__$1 = seq__21600__$1;
|
|
128
|
+
var o = ["-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c__$1)].join('');
|
|
129
|
+
if(cljs.core.contains_QMARK_(required_set,o)){
|
|
130
|
+
if(cljs.core.seq(cs__$1)){
|
|
131
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(os__$2,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),o,clojure.string.join.cljs$core$IFn$_invoke$arity$1(cs__$1)], null)),cdr__$1], null);
|
|
132
|
+
} else {
|
|
133
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(os__$2,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),o,cljs.core.first(cdr__$1)], null)),cljs.core.rest(cdr__$1)], null);
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
if(cljs.core.seq(cs__$1)){
|
|
137
|
+
var G__21824 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(os__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),o], null));
|
|
138
|
+
var G__21825 = cs__$1;
|
|
139
|
+
os__$1 = G__21824;
|
|
140
|
+
G__21587__$1 = G__21825;
|
|
141
|
+
continue;
|
|
142
|
+
} else {
|
|
143
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.cljs$core$IFn$_invoke$arity$2(os__$2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),o], null)),cdr__$1], null);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
})();
|
|
149
|
+
var os = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21581,(0),null);
|
|
150
|
+
var cdr__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21581,(1),null);
|
|
151
|
+
var G__21826 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(opts__$2,os);
|
|
152
|
+
var G__21827 = argv__$2;
|
|
153
|
+
var G__21828 = cdr__$2;
|
|
154
|
+
opts__$1 = G__21826;
|
|
155
|
+
argv__$1 = G__21827;
|
|
156
|
+
G__21512__$1 = G__21828;
|
|
157
|
+
continue;
|
|
158
|
+
} else {
|
|
159
|
+
if(cljs.core.truth_(in_order)){
|
|
160
|
+
var G__21829 = opts__$2;
|
|
161
|
+
var G__21830 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(argv__$2,cljs.core.cons(car__$1,cdr__$1));
|
|
162
|
+
var G__21831 = cljs.core.PersistentVector.EMPTY;
|
|
163
|
+
opts__$1 = G__21829;
|
|
164
|
+
argv__$1 = G__21830;
|
|
165
|
+
G__21512__$1 = G__21831;
|
|
166
|
+
continue;
|
|
167
|
+
} else {
|
|
168
|
+
var G__21832 = opts__$2;
|
|
169
|
+
var G__21833 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argv__$2,car__$1);
|
|
170
|
+
var G__21834 = cdr__$1;
|
|
171
|
+
opts__$1 = G__21832;
|
|
172
|
+
argv__$1 = G__21833;
|
|
173
|
+
G__21512__$1 = G__21834;
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [opts__$2,argv__$2], null);
|
|
182
|
+
}
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}));
|
|
186
|
+
|
|
187
|
+
(clojure.tools.cli.tokenize_args.cljs$lang$maxFixedArity = (2));
|
|
188
|
+
|
|
189
|
+
/** @this {Function} */
|
|
190
|
+
(clojure.tools.cli.tokenize_args.cljs$lang$applyTo = (function (seq21500){
|
|
191
|
+
var G__21501 = cljs.core.first(seq21500);
|
|
192
|
+
var seq21500__$1 = cljs.core.next(seq21500);
|
|
193
|
+
var G__21502 = cljs.core.first(seq21500__$1);
|
|
194
|
+
var seq21500__$2 = cljs.core.next(seq21500__$1);
|
|
195
|
+
var self__5754__auto__ = this;
|
|
196
|
+
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21501,G__21502,seq21500__$2);
|
|
197
|
+
}));
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Given a sequence of column widths, return a string suitable for use in
|
|
201
|
+
* format to print a sequences of strings in those columns.
|
|
202
|
+
*/
|
|
203
|
+
clojure.tools.cli.make_format = (function clojure$tools$cli$make_format(lens){
|
|
204
|
+
return clojure.string.join.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21606_SHARP_){
|
|
205
|
+
return [" %",(((p1__21606_SHARP_ === (0)))?null:["-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__21606_SHARP_)].join('')),"s"].join('');
|
|
206
|
+
}),lens));
|
|
207
|
+
});
|
|
208
|
+
clojure.tools.cli.build_doc = (function clojure$tools$cli$build_doc(p__21607){
|
|
209
|
+
var map__21608 = p__21607;
|
|
210
|
+
var map__21608__$1 = cljs.core.__destructure_map(map__21608);
|
|
211
|
+
var switches = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21608__$1,new cljs.core.Keyword(null,"switches","switches",2013040888));
|
|
212
|
+
var docs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21608__$1,new cljs.core.Keyword(null,"docs","docs",-1974280502));
|
|
213
|
+
var default$ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21608__$1,new cljs.core.Keyword(null,"default","default",-1987822328));
|
|
214
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.interpose.cljs$core$IFn$_invoke$arity$2(", ",switches)),(function (){var or__5045__auto__ = cljs.core.str.cljs$core$IFn$_invoke$arity$1(default$);
|
|
215
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
216
|
+
return or__5045__auto__;
|
|
217
|
+
} else {
|
|
218
|
+
return "";
|
|
219
|
+
}
|
|
220
|
+
})(),(function (){var or__5045__auto__ = docs;
|
|
221
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
222
|
+
return or__5045__auto__;
|
|
223
|
+
} else {
|
|
224
|
+
return "";
|
|
225
|
+
}
|
|
226
|
+
})()], null);
|
|
227
|
+
});
|
|
228
|
+
clojure.tools.cli.format = (function clojure$tools$cli$format(var_args){
|
|
229
|
+
var args__5775__auto__ = [];
|
|
230
|
+
var len__5769__auto___21837 = arguments.length;
|
|
231
|
+
var i__5770__auto___21838 = (0);
|
|
232
|
+
while(true){
|
|
233
|
+
if((i__5770__auto___21838 < len__5769__auto___21837)){
|
|
234
|
+
args__5775__auto__.push((arguments[i__5770__auto___21838]));
|
|
235
|
+
|
|
236
|
+
var G__21839 = (i__5770__auto___21838 + (1));
|
|
237
|
+
i__5770__auto___21838 = G__21839;
|
|
238
|
+
continue;
|
|
239
|
+
} else {
|
|
240
|
+
}
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
var argseq__5776__auto__ = ((((1) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((1)),(0),null)):null);
|
|
245
|
+
return clojure.tools.cli.format.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5776__auto__);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
(clojure.tools.cli.format.cljs$core$IFn$_invoke$arity$variadic = (function (fmt,args){
|
|
249
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,fmt,args);
|
|
250
|
+
}));
|
|
251
|
+
|
|
252
|
+
(clojure.tools.cli.format.cljs$lang$maxFixedArity = (1));
|
|
253
|
+
|
|
254
|
+
/** @this {Function} */
|
|
255
|
+
(clojure.tools.cli.format.cljs$lang$applyTo = (function (seq21610){
|
|
256
|
+
var G__21611 = cljs.core.first(seq21610);
|
|
257
|
+
var seq21610__$1 = cljs.core.next(seq21610);
|
|
258
|
+
var self__5754__auto__ = this;
|
|
259
|
+
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21611,seq21610__$1);
|
|
260
|
+
}));
|
|
261
|
+
|
|
262
|
+
clojure.tools.cli.banner_for = (function clojure$tools$cli$banner_for(desc,specs){
|
|
263
|
+
if(cljs.core.truth_(desc)){
|
|
264
|
+
cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([desc], 0));
|
|
265
|
+
|
|
266
|
+
cljs.core.println();
|
|
267
|
+
} else {
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
var docs = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.tools.cli.build_doc,specs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["--------","-------","----"], null),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Switches","Default","Desc"], null)], null));
|
|
271
|
+
var max_cols = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21615_SHARP_){
|
|
272
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,p1__21615_SHARP_);
|
|
273
|
+
}),cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.map,(function() {
|
|
274
|
+
var G__21845__delegate = function (c){
|
|
275
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,c);
|
|
276
|
+
};
|
|
277
|
+
var G__21845 = function (var_args){
|
|
278
|
+
var c = null;
|
|
279
|
+
if (arguments.length > 0) {
|
|
280
|
+
var G__21846__i = 0, G__21846__a = new Array(arguments.length - 0);
|
|
281
|
+
while (G__21846__i < G__21846__a.length) {G__21846__a[G__21846__i] = arguments[G__21846__i + 0]; ++G__21846__i;}
|
|
282
|
+
c = new cljs.core.IndexedSeq(G__21846__a,0,null);
|
|
283
|
+
}
|
|
284
|
+
return G__21845__delegate.call(this,c);};
|
|
285
|
+
G__21845.cljs$lang$maxFixedArity = 0;
|
|
286
|
+
G__21845.cljs$lang$applyTo = (function (arglist__21847){
|
|
287
|
+
var c = cljs.core.seq(arglist__21847);
|
|
288
|
+
return G__21845__delegate(c);
|
|
289
|
+
});
|
|
290
|
+
G__21845.cljs$core$IFn$_invoke$arity$variadic = G__21845__delegate;
|
|
291
|
+
return G__21845;
|
|
292
|
+
})()
|
|
293
|
+
,(function (){var iter__5523__auto__ = (function clojure$tools$cli$banner_for_$_iter__21618(s__21619){
|
|
294
|
+
return (new cljs.core.LazySeq(null,(function (){
|
|
295
|
+
var s__21619__$1 = s__21619;
|
|
296
|
+
while(true){
|
|
297
|
+
var temp__5804__auto__ = cljs.core.seq(s__21619__$1);
|
|
298
|
+
if(temp__5804__auto__){
|
|
299
|
+
var s__21619__$2 = temp__5804__auto__;
|
|
300
|
+
if(cljs.core.chunked_seq_QMARK_(s__21619__$2)){
|
|
301
|
+
var c__5521__auto__ = cljs.core.chunk_first(s__21619__$2);
|
|
302
|
+
var size__5522__auto__ = cljs.core.count(c__5521__auto__);
|
|
303
|
+
var b__21621 = cljs.core.chunk_buffer(size__5522__auto__);
|
|
304
|
+
if((function (){var i__21620 = (0);
|
|
305
|
+
while(true){
|
|
306
|
+
if((i__21620 < size__5522__auto__)){
|
|
307
|
+
var d = cljs.core._nth(c__5521__auto__,i__21620);
|
|
308
|
+
cljs.core.chunk_append(b__21621,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,d));
|
|
309
|
+
|
|
310
|
+
var G__21849 = (i__21620 + (1));
|
|
311
|
+
i__21620 = G__21849;
|
|
312
|
+
continue;
|
|
313
|
+
} else {
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
})()){
|
|
319
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__21621),clojure$tools$cli$banner_for_$_iter__21618(cljs.core.chunk_rest(s__21619__$2)));
|
|
320
|
+
} else {
|
|
321
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__21621),null);
|
|
322
|
+
}
|
|
323
|
+
} else {
|
|
324
|
+
var d = cljs.core.first(s__21619__$2);
|
|
325
|
+
return cljs.core.cons(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,d),clojure$tools$cli$banner_for_$_iter__21618(cljs.core.rest(s__21619__$2)));
|
|
326
|
+
}
|
|
327
|
+
} else {
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
}),null,null));
|
|
333
|
+
});
|
|
334
|
+
return iter__5523__auto__(docs);
|
|
335
|
+
})()));
|
|
336
|
+
var vs = (function (){var iter__5523__auto__ = (function clojure$tools$cli$banner_for_$_iter__21622(s__21623){
|
|
337
|
+
return (new cljs.core.LazySeq(null,(function (){
|
|
338
|
+
var s__21623__$1 = s__21623;
|
|
339
|
+
while(true){
|
|
340
|
+
var temp__5804__auto__ = cljs.core.seq(s__21623__$1);
|
|
341
|
+
if(temp__5804__auto__){
|
|
342
|
+
var s__21623__$2 = temp__5804__auto__;
|
|
343
|
+
if(cljs.core.chunked_seq_QMARK_(s__21623__$2)){
|
|
344
|
+
var c__5521__auto__ = cljs.core.chunk_first(s__21623__$2);
|
|
345
|
+
var size__5522__auto__ = cljs.core.count(c__5521__auto__);
|
|
346
|
+
var b__21625 = cljs.core.chunk_buffer(size__5522__auto__);
|
|
347
|
+
if((function (){var i__21624 = (0);
|
|
348
|
+
while(true){
|
|
349
|
+
if((i__21624 < size__5522__auto__)){
|
|
350
|
+
var d = cljs.core._nth(c__5521__auto__,i__21624);
|
|
351
|
+
cljs.core.chunk_append(b__21625,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (i__21624,d,c__5521__auto__,size__5522__auto__,b__21625,s__21623__$2,temp__5804__auto__,docs,max_cols){
|
|
352
|
+
return (function() {
|
|
353
|
+
var G__21851__delegate = function (x){
|
|
354
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,x);
|
|
355
|
+
};
|
|
356
|
+
var G__21851 = function (var_args){
|
|
357
|
+
var x = null;
|
|
358
|
+
if (arguments.length > 0) {
|
|
359
|
+
var G__21852__i = 0, G__21852__a = new Array(arguments.length - 0);
|
|
360
|
+
while (G__21852__i < G__21852__a.length) {G__21852__a[G__21852__i] = arguments[G__21852__i + 0]; ++G__21852__i;}
|
|
361
|
+
x = new cljs.core.IndexedSeq(G__21852__a,0,null);
|
|
362
|
+
}
|
|
363
|
+
return G__21851__delegate.call(this,x);};
|
|
364
|
+
G__21851.cljs$lang$maxFixedArity = 0;
|
|
365
|
+
G__21851.cljs$lang$applyTo = (function (arglist__21853){
|
|
366
|
+
var x = cljs.core.seq(arglist__21853);
|
|
367
|
+
return G__21851__delegate(x);
|
|
368
|
+
});
|
|
369
|
+
G__21851.cljs$core$IFn$_invoke$arity$variadic = G__21851__delegate;
|
|
370
|
+
return G__21851;
|
|
371
|
+
})()
|
|
372
|
+
;})(i__21624,d,c__5521__auto__,size__5522__auto__,b__21625,s__21623__$2,temp__5804__auto__,docs,max_cols))
|
|
373
|
+
,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([max_cols,d], 0)));
|
|
374
|
+
|
|
375
|
+
var G__21854 = (i__21624 + (1));
|
|
376
|
+
i__21624 = G__21854;
|
|
377
|
+
continue;
|
|
378
|
+
} else {
|
|
379
|
+
return true;
|
|
380
|
+
}
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
})()){
|
|
384
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__21625),clojure$tools$cli$banner_for_$_iter__21622(cljs.core.chunk_rest(s__21623__$2)));
|
|
385
|
+
} else {
|
|
386
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__21625),null);
|
|
387
|
+
}
|
|
388
|
+
} else {
|
|
389
|
+
var d = cljs.core.first(s__21623__$2);
|
|
390
|
+
return cljs.core.cons(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (d,s__21623__$2,temp__5804__auto__,docs,max_cols){
|
|
391
|
+
return (function() {
|
|
392
|
+
var G__21855__delegate = function (x){
|
|
393
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,x);
|
|
394
|
+
};
|
|
395
|
+
var G__21855 = function (var_args){
|
|
396
|
+
var x = null;
|
|
397
|
+
if (arguments.length > 0) {
|
|
398
|
+
var G__21856__i = 0, G__21856__a = new Array(arguments.length - 0);
|
|
399
|
+
while (G__21856__i < G__21856__a.length) {G__21856__a[G__21856__i] = arguments[G__21856__i + 0]; ++G__21856__i;}
|
|
400
|
+
x = new cljs.core.IndexedSeq(G__21856__a,0,null);
|
|
401
|
+
}
|
|
402
|
+
return G__21855__delegate.call(this,x);};
|
|
403
|
+
G__21855.cljs$lang$maxFixedArity = 0;
|
|
404
|
+
G__21855.cljs$lang$applyTo = (function (arglist__21857){
|
|
405
|
+
var x = cljs.core.seq(arglist__21857);
|
|
406
|
+
return G__21855__delegate(x);
|
|
407
|
+
});
|
|
408
|
+
G__21855.cljs$core$IFn$_invoke$arity$variadic = G__21855__delegate;
|
|
409
|
+
return G__21855;
|
|
410
|
+
})()
|
|
411
|
+
;})(d,s__21623__$2,temp__5804__auto__,docs,max_cols))
|
|
412
|
+
,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([max_cols,d], 0)),clojure$tools$cli$banner_for_$_iter__21622(cljs.core.rest(s__21623__$2)));
|
|
413
|
+
}
|
|
414
|
+
} else {
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
}),null,null));
|
|
420
|
+
});
|
|
421
|
+
return iter__5523__auto__(docs);
|
|
422
|
+
})();
|
|
423
|
+
var seq__21626 = cljs.core.seq(vs);
|
|
424
|
+
var chunk__21627 = null;
|
|
425
|
+
var count__21628 = (0);
|
|
426
|
+
var i__21629 = (0);
|
|
427
|
+
while(true){
|
|
428
|
+
if((i__21629 < count__21628)){
|
|
429
|
+
var v = chunk__21627.cljs$core$IIndexed$_nth$arity$2(null,i__21629);
|
|
430
|
+
var fmt_21859 = clojure.tools.cli.make_format(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),v));
|
|
431
|
+
cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$3(clojure.tools.cli.format,fmt_21859,cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.rest(v)))], 0));
|
|
432
|
+
|
|
433
|
+
cljs.core.prn();
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
var G__21860 = seq__21626;
|
|
437
|
+
var G__21861 = chunk__21627;
|
|
438
|
+
var G__21862 = count__21628;
|
|
439
|
+
var G__21863 = (i__21629 + (1));
|
|
440
|
+
seq__21626 = G__21860;
|
|
441
|
+
chunk__21627 = G__21861;
|
|
442
|
+
count__21628 = G__21862;
|
|
443
|
+
i__21629 = G__21863;
|
|
444
|
+
continue;
|
|
445
|
+
} else {
|
|
446
|
+
var temp__5804__auto__ = cljs.core.seq(seq__21626);
|
|
447
|
+
if(temp__5804__auto__){
|
|
448
|
+
var seq__21626__$1 = temp__5804__auto__;
|
|
449
|
+
if(cljs.core.chunked_seq_QMARK_(seq__21626__$1)){
|
|
450
|
+
var c__5568__auto__ = cljs.core.chunk_first(seq__21626__$1);
|
|
451
|
+
var G__21864 = cljs.core.chunk_rest(seq__21626__$1);
|
|
452
|
+
var G__21865 = c__5568__auto__;
|
|
453
|
+
var G__21866 = cljs.core.count(c__5568__auto__);
|
|
454
|
+
var G__21867 = (0);
|
|
455
|
+
seq__21626 = G__21864;
|
|
456
|
+
chunk__21627 = G__21865;
|
|
457
|
+
count__21628 = G__21866;
|
|
458
|
+
i__21629 = G__21867;
|
|
459
|
+
continue;
|
|
460
|
+
} else {
|
|
461
|
+
var v = cljs.core.first(seq__21626__$1);
|
|
462
|
+
var fmt_21868 = clojure.tools.cli.make_format(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),v));
|
|
463
|
+
cljs.core.print.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.apply.cljs$core$IFn$_invoke$arity$3(clojure.tools.cli.format,fmt_21868,cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.rest(v)))], 0));
|
|
464
|
+
|
|
465
|
+
cljs.core.prn();
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
var G__21870 = cljs.core.next(seq__21626__$1);
|
|
469
|
+
var G__21871 = null;
|
|
470
|
+
var G__21872 = (0);
|
|
471
|
+
var G__21873 = (0);
|
|
472
|
+
seq__21626 = G__21870;
|
|
473
|
+
chunk__21627 = G__21871;
|
|
474
|
+
count__21628 = G__21872;
|
|
475
|
+
i__21629 = G__21873;
|
|
476
|
+
continue;
|
|
477
|
+
}
|
|
478
|
+
} else {
|
|
479
|
+
return null;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
clojure.tools.cli.name_for = (function clojure$tools$cli$name_for(k){
|
|
486
|
+
return clojure.string.replace(k,/^--no-|^--\[no-\]|^--|^-/,"");
|
|
487
|
+
});
|
|
488
|
+
clojure.tools.cli.flag_for = (function clojure$tools$cli$flag_for(v){
|
|
489
|
+
return (!(clojure.string.starts_with_QMARK_(v,"--no-")));
|
|
490
|
+
});
|
|
491
|
+
clojure.tools.cli.opt_QMARK_ = (function clojure$tools$cli$opt_QMARK_(x){
|
|
492
|
+
return clojure.string.starts_with_QMARK_(x,"-");
|
|
493
|
+
});
|
|
494
|
+
clojure.tools.cli.flag_QMARK_ = (function clojure$tools$cli$flag_QMARK_(x){
|
|
495
|
+
return clojure.string.starts_with_QMARK_(x,"--[no-]");
|
|
496
|
+
});
|
|
497
|
+
clojure.tools.cli.end_of_args_QMARK_ = (function clojure$tools$cli$end_of_args_QMARK_(x){
|
|
498
|
+
return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("--",x);
|
|
499
|
+
});
|
|
500
|
+
clojure.tools.cli.spec_for = (function clojure$tools$cli$spec_for(arg,specs){
|
|
501
|
+
return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (s){
|
|
502
|
+
var switches = cljs.core.set((s.cljs$core$IFn$_invoke$arity$1 ? s.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"switches","switches",2013040888)) : s.call(null,new cljs.core.Keyword(null,"switches","switches",2013040888))));
|
|
503
|
+
return cljs.core.contains_QMARK_(switches,arg);
|
|
504
|
+
}),specs));
|
|
505
|
+
});
|
|
506
|
+
clojure.tools.cli.default_values_for = (function clojure$tools$cli$default_values_for(specs){
|
|
507
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,s){
|
|
508
|
+
if(cljs.core.contains_QMARK_(s,new cljs.core.Keyword(null,"default","default",-1987822328))){
|
|
509
|
+
var G__21631 = m;
|
|
510
|
+
var G__21632 = new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(s);
|
|
511
|
+
var G__21633 = new cljs.core.Keyword(null,"default","default",-1987822328).cljs$core$IFn$_invoke$arity$1(s);
|
|
512
|
+
var fexpr__21630 = new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603).cljs$core$IFn$_invoke$arity$1(s);
|
|
513
|
+
return (fexpr__21630.cljs$core$IFn$_invoke$arity$3 ? fexpr__21630.cljs$core$IFn$_invoke$arity$3(G__21631,G__21632,G__21633) : fexpr__21630.call(null,G__21631,G__21632,G__21633));
|
|
514
|
+
} else {
|
|
515
|
+
return m;
|
|
516
|
+
}
|
|
517
|
+
}),cljs.core.PersistentArrayMap.EMPTY,specs);
|
|
518
|
+
});
|
|
519
|
+
clojure.tools.cli.apply_specs = (function clojure$tools$cli$apply_specs(specs,args){
|
|
520
|
+
var options = clojure.tools.cli.default_values_for(specs);
|
|
521
|
+
var extra_args = cljs.core.PersistentVector.EMPTY;
|
|
522
|
+
var args__$1 = args;
|
|
523
|
+
while(true){
|
|
524
|
+
if(cljs.core.not(cljs.core.seq(args__$1))){
|
|
525
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [options,extra_args], null);
|
|
526
|
+
} else {
|
|
527
|
+
var opt = cljs.core.first(args__$1);
|
|
528
|
+
var spec = clojure.tools.cli.spec_for(opt,specs);
|
|
529
|
+
if(clojure.tools.cli.end_of_args_QMARK_(opt)){
|
|
530
|
+
var G__21878 = options;
|
|
531
|
+
var G__21879 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(extra_args,cljs.core.vec(cljs.core.rest(args__$1)));
|
|
532
|
+
var G__21880 = null;
|
|
533
|
+
options = G__21878;
|
|
534
|
+
extra_args = G__21879;
|
|
535
|
+
args__$1 = G__21880;
|
|
536
|
+
continue;
|
|
537
|
+
} else {
|
|
538
|
+
if(((clojure.tools.cli.opt_QMARK_(opt)) && ((spec == null)))){
|
|
539
|
+
throw (new Error(["'",cljs.core.str.cljs$core$IFn$_invoke$arity$1(opt),"' is not a valid argument"].join('')));
|
|
540
|
+
} else {
|
|
541
|
+
if(cljs.core.truth_((function (){var and__5043__auto__ = clojure.tools.cli.opt_QMARK_(opt);
|
|
542
|
+
if(and__5043__auto__){
|
|
543
|
+
return (spec.cljs$core$IFn$_invoke$arity$1 ? spec.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"flag","flag",1088647881)) : spec.call(null,new cljs.core.Keyword(null,"flag","flag",1088647881)));
|
|
544
|
+
} else {
|
|
545
|
+
return and__5043__auto__;
|
|
546
|
+
}
|
|
547
|
+
})())){
|
|
548
|
+
var G__21881 = (function (){var G__21645 = options;
|
|
549
|
+
var G__21646 = (spec.cljs$core$IFn$_invoke$arity$1 ? spec.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"name","name",1843675177)) : spec.call(null,new cljs.core.Keyword(null,"name","name",1843675177)));
|
|
550
|
+
var G__21647 = clojure.tools.cli.flag_for(opt);
|
|
551
|
+
var fexpr__21644 = (spec.cljs$core$IFn$_invoke$arity$1 ? spec.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603)) : spec.call(null,new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603)));
|
|
552
|
+
return (fexpr__21644.cljs$core$IFn$_invoke$arity$3 ? fexpr__21644.cljs$core$IFn$_invoke$arity$3(G__21645,G__21646,G__21647) : fexpr__21644.call(null,G__21645,G__21646,G__21647));
|
|
553
|
+
})();
|
|
554
|
+
var G__21882 = extra_args;
|
|
555
|
+
var G__21883 = cljs.core.rest(args__$1);
|
|
556
|
+
options = G__21881;
|
|
557
|
+
extra_args = G__21882;
|
|
558
|
+
args__$1 = G__21883;
|
|
559
|
+
continue;
|
|
560
|
+
} else {
|
|
561
|
+
if(clojure.tools.cli.opt_QMARK_(opt)){
|
|
562
|
+
var G__21885 = (function (){var G__21649 = options;
|
|
563
|
+
var G__21650 = (spec.cljs$core$IFn$_invoke$arity$1 ? spec.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"name","name",1843675177)) : spec.call(null,new cljs.core.Keyword(null,"name","name",1843675177)));
|
|
564
|
+
var G__21651 = (function (){var G__21653 = cljs.core.second(args__$1);
|
|
565
|
+
var fexpr__21652 = (spec.cljs$core$IFn$_invoke$arity$1 ? spec.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"parse-fn","parse-fn",1818406345)) : spec.call(null,new cljs.core.Keyword(null,"parse-fn","parse-fn",1818406345)));
|
|
566
|
+
return (fexpr__21652.cljs$core$IFn$_invoke$arity$1 ? fexpr__21652.cljs$core$IFn$_invoke$arity$1(G__21653) : fexpr__21652.call(null,G__21653));
|
|
567
|
+
})();
|
|
568
|
+
var fexpr__21648 = (spec.cljs$core$IFn$_invoke$arity$1 ? spec.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603)) : spec.call(null,new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603)));
|
|
569
|
+
return (fexpr__21648.cljs$core$IFn$_invoke$arity$3 ? fexpr__21648.cljs$core$IFn$_invoke$arity$3(G__21649,G__21650,G__21651) : fexpr__21648.call(null,G__21649,G__21650,G__21651));
|
|
570
|
+
})();
|
|
571
|
+
var G__21886 = extra_args;
|
|
572
|
+
var G__21887 = cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__$1);
|
|
573
|
+
options = G__21885;
|
|
574
|
+
extra_args = G__21886;
|
|
575
|
+
args__$1 = G__21887;
|
|
576
|
+
continue;
|
|
577
|
+
} else {
|
|
578
|
+
var G__21888 = options;
|
|
579
|
+
var G__21889 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(extra_args,cljs.core.first(args__$1));
|
|
580
|
+
var G__21890 = cljs.core.rest(args__$1);
|
|
581
|
+
options = G__21888;
|
|
582
|
+
extra_args = G__21889;
|
|
583
|
+
args__$1 = G__21890;
|
|
584
|
+
continue;
|
|
585
|
+
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
break;
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
clojure.tools.cli.switches_for = (function clojure$tools$cli$switches_for(switches,flag){
|
|
595
|
+
return cljs.core.flatten((function (){var iter__5523__auto__ = (function clojure$tools$cli$switches_for_$_iter__21654(s__21655){
|
|
596
|
+
return (new cljs.core.LazySeq(null,(function (){
|
|
597
|
+
var s__21655__$1 = s__21655;
|
|
598
|
+
while(true){
|
|
599
|
+
var temp__5804__auto__ = cljs.core.seq(s__21655__$1);
|
|
600
|
+
if(temp__5804__auto__){
|
|
601
|
+
var s__21655__$2 = temp__5804__auto__;
|
|
602
|
+
if(cljs.core.chunked_seq_QMARK_(s__21655__$2)){
|
|
603
|
+
var c__5521__auto__ = cljs.core.chunk_first(s__21655__$2);
|
|
604
|
+
var size__5522__auto__ = cljs.core.count(c__5521__auto__);
|
|
605
|
+
var b__21657 = cljs.core.chunk_buffer(size__5522__auto__);
|
|
606
|
+
if((function (){var i__21656 = (0);
|
|
607
|
+
while(true){
|
|
608
|
+
if((i__21656 < size__5522__auto__)){
|
|
609
|
+
var s = cljs.core._nth(c__5521__auto__,i__21656);
|
|
610
|
+
cljs.core.chunk_append(b__21657,(cljs.core.truth_((function (){var and__5043__auto__ = flag;
|
|
611
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
612
|
+
return clojure.tools.cli.flag_QMARK_(s);
|
|
613
|
+
} else {
|
|
614
|
+
return and__5043__auto__;
|
|
615
|
+
}
|
|
616
|
+
})())?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.string.replace(s,/\[no-\]/,"no-"),clojure.string.replace(s,/\[no-\]/,"")], null):(cljs.core.truth_((function (){var and__5043__auto__ = flag;
|
|
617
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
618
|
+
return clojure.string.starts_with_QMARK_(s,"--");
|
|
619
|
+
} else {
|
|
620
|
+
return and__5043__auto__;
|
|
621
|
+
}
|
|
622
|
+
})())?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.string.replace(s,/--/,"--no-"),s], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [s], null)
|
|
623
|
+
)));
|
|
624
|
+
|
|
625
|
+
var G__21897 = (i__21656 + (1));
|
|
626
|
+
i__21656 = G__21897;
|
|
627
|
+
continue;
|
|
628
|
+
} else {
|
|
629
|
+
return true;
|
|
630
|
+
}
|
|
631
|
+
break;
|
|
632
|
+
}
|
|
633
|
+
})()){
|
|
634
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__21657),clojure$tools$cli$switches_for_$_iter__21654(cljs.core.chunk_rest(s__21655__$2)));
|
|
635
|
+
} else {
|
|
636
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__21657),null);
|
|
637
|
+
}
|
|
638
|
+
} else {
|
|
639
|
+
var s = cljs.core.first(s__21655__$2);
|
|
640
|
+
return cljs.core.cons((cljs.core.truth_((function (){var and__5043__auto__ = flag;
|
|
641
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
642
|
+
return clojure.tools.cli.flag_QMARK_(s);
|
|
643
|
+
} else {
|
|
644
|
+
return and__5043__auto__;
|
|
645
|
+
}
|
|
646
|
+
})())?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.string.replace(s,/\[no-\]/,"no-"),clojure.string.replace(s,/\[no-\]/,"")], null):(cljs.core.truth_((function (){var and__5043__auto__ = flag;
|
|
647
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
648
|
+
return clojure.string.starts_with_QMARK_(s,"--");
|
|
649
|
+
} else {
|
|
650
|
+
return and__5043__auto__;
|
|
651
|
+
}
|
|
652
|
+
})())?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.string.replace(s,/--/,"--no-"),s], null):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [s], null)
|
|
653
|
+
)),clojure$tools$cli$switches_for_$_iter__21654(cljs.core.rest(s__21655__$2)));
|
|
654
|
+
}
|
|
655
|
+
} else {
|
|
656
|
+
return null;
|
|
657
|
+
}
|
|
658
|
+
break;
|
|
659
|
+
}
|
|
660
|
+
}),null,null));
|
|
661
|
+
});
|
|
662
|
+
return iter__5523__auto__(switches);
|
|
663
|
+
})());
|
|
664
|
+
});
|
|
665
|
+
clojure.tools.cli.generate_spec = (function clojure$tools$cli$generate_spec(raw_spec){
|
|
666
|
+
var vec__21659 = cljs.core.split_with((function (p1__21658_SHARP_){
|
|
667
|
+
return ((typeof p1__21658_SHARP_ === 'string') && (clojure.tools.cli.opt_QMARK_(p1__21658_SHARP_)));
|
|
668
|
+
}),raw_spec);
|
|
669
|
+
var switches = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21659,(0),null);
|
|
670
|
+
var raw_spec__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21659,(1),null);
|
|
671
|
+
var vec__21662 = cljs.core.split_with(cljs.core.string_QMARK_,raw_spec__$1);
|
|
672
|
+
var docs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21662,(0),null);
|
|
673
|
+
var raw_spec__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21662,(1),null);
|
|
674
|
+
var options = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,raw_spec__$2);
|
|
675
|
+
var aliases = cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.tools.cli.name_for,switches);
|
|
676
|
+
var flag = (function (){var or__5045__auto__ = clojure.tools.cli.flag_QMARK_(cljs.core.last(switches));
|
|
677
|
+
if(or__5045__auto__){
|
|
678
|
+
return or__5045__auto__;
|
|
679
|
+
} else {
|
|
680
|
+
return (options.cljs$core$IFn$_invoke$arity$1 ? options.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"flag","flag",1088647881)) : options.call(null,new cljs.core.Keyword(null,"flag","flag",1088647881)));
|
|
681
|
+
}
|
|
682
|
+
})();
|
|
683
|
+
return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"switches","switches",2013040888),clojure.tools.cli.switches_for(switches,flag),new cljs.core.Keyword(null,"docs","docs",-1974280502),cljs.core.first(docs),new cljs.core.Keyword(null,"aliases","aliases",1346874714),cljs.core.set(aliases),new cljs.core.Keyword(null,"name","name",1843675177),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.last(aliases)),new cljs.core.Keyword(null,"parse-fn","parse-fn",1818406345),cljs.core.identity,new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603),cljs.core.assoc,new cljs.core.Keyword(null,"flag","flag",1088647881),flag], null),(cljs.core.truth_(flag)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"default","default",-1987822328),false], null):null),options], 0));
|
|
684
|
+
});
|
|
685
|
+
/**
|
|
686
|
+
* Rewrite arguments sequence into a normalized form that is parsable by cli.
|
|
687
|
+
*/
|
|
688
|
+
clojure.tools.cli.normalize_args = (function clojure$tools$cli$normalize_args(specs,args){
|
|
689
|
+
var required_opts = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,"switches","switches",2013040888),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.complement(new cljs.core.Keyword(null,"flag","flag",1088647881)),specs)], 0)));
|
|
690
|
+
var largs = cljs.core.take_while.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.not_EQ_,"--"),args);
|
|
691
|
+
var rargs = cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(largs),args);
|
|
692
|
+
var vec__21665 = clojure.tools.cli.tokenize_args(required_opts,largs);
|
|
693
|
+
var opts = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21665,(0),null);
|
|
694
|
+
var largs__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21665,(1),null);
|
|
695
|
+
return cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(cljs.core.rest,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opts], 0)),largs__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([rargs], 0));
|
|
696
|
+
});
|
|
697
|
+
/**
|
|
698
|
+
* THIS IS A LEGACY FUNCTION and may be deprecated in the future. Please use
|
|
699
|
+
* clojure.tools.cli/parse-opts in new applications.
|
|
700
|
+
*
|
|
701
|
+
* Parse the provided args using the given specs. Specs are vectors
|
|
702
|
+
* describing a command line argument. For example:
|
|
703
|
+
*
|
|
704
|
+
* ["-p" "--port" "Port to listen on" :default 3000 :parse-fn #(Integer/parseInt %)]
|
|
705
|
+
*
|
|
706
|
+
* First provide the switches (from least to most specific), then a doc
|
|
707
|
+
* string, and pairs of options.
|
|
708
|
+
*
|
|
709
|
+
* Valid options are :default, :parse-fn, and :flag. See
|
|
710
|
+
* https://github.com/clojure/tools.cli/wiki/Documentation-for-0.2.4 for more
|
|
711
|
+
* detailed examples.
|
|
712
|
+
*
|
|
713
|
+
* Returns a vector containing a map of the parsed arguments, a vector
|
|
714
|
+
* of extra arguments that did not match known switches, and a
|
|
715
|
+
* documentation banner to provide usage instructions.
|
|
716
|
+
*/
|
|
717
|
+
clojure.tools.cli.cli = (function clojure$tools$cli$cli(var_args){
|
|
718
|
+
var args__5775__auto__ = [];
|
|
719
|
+
var len__5769__auto___21913 = arguments.length;
|
|
720
|
+
var i__5770__auto___21914 = (0);
|
|
721
|
+
while(true){
|
|
722
|
+
if((i__5770__auto___21914 < len__5769__auto___21913)){
|
|
723
|
+
args__5775__auto__.push((arguments[i__5770__auto___21914]));
|
|
724
|
+
|
|
725
|
+
var G__21915 = (i__5770__auto___21914 + (1));
|
|
726
|
+
i__5770__auto___21914 = G__21915;
|
|
727
|
+
continue;
|
|
728
|
+
} else {
|
|
729
|
+
}
|
|
730
|
+
break;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
var argseq__5776__auto__ = ((((1) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((1)),(0),null)):null);
|
|
734
|
+
return clojure.tools.cli.cli.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5776__auto__);
|
|
735
|
+
});
|
|
736
|
+
|
|
737
|
+
(clojure.tools.cli.cli.cljs$core$IFn$_invoke$arity$variadic = (function (args,specs){
|
|
738
|
+
var vec__21670 = ((typeof cljs.core.first(specs) === 'string')?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(specs),cljs.core.rest(specs)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,specs], null));
|
|
739
|
+
var desc = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21670,(0),null);
|
|
740
|
+
var specs__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21670,(1),null);
|
|
741
|
+
var specs__$2 = cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.tools.cli.generate_spec,specs__$1);
|
|
742
|
+
var args__$1 = clojure.tools.cli.normalize_args(specs__$2,args);
|
|
743
|
+
var vec__21673 = clojure.tools.cli.apply_specs(specs__$2,args__$1);
|
|
744
|
+
var options = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21673,(0),null);
|
|
745
|
+
var extra_args = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21673,(1),null);
|
|
746
|
+
var banner = (function (){var sb__5690__auto__ = (new goog.string.StringBuffer());
|
|
747
|
+
var _STAR_print_newline_STAR__orig_val__21676_21917 = cljs.core._STAR_print_newline_STAR_;
|
|
748
|
+
var _STAR_print_fn_STAR__orig_val__21677_21918 = cljs.core._STAR_print_fn_STAR_;
|
|
749
|
+
var _STAR_print_newline_STAR__temp_val__21678_21919 = true;
|
|
750
|
+
var _STAR_print_fn_STAR__temp_val__21679_21920 = (function (x__5691__auto__){
|
|
751
|
+
return sb__5690__auto__.append(x__5691__auto__);
|
|
752
|
+
});
|
|
753
|
+
(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__temp_val__21678_21919);
|
|
754
|
+
|
|
755
|
+
(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__temp_val__21679_21920);
|
|
756
|
+
|
|
757
|
+
try{clojure.tools.cli.banner_for(desc,specs__$2);
|
|
758
|
+
}finally {(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__orig_val__21677_21918);
|
|
759
|
+
|
|
760
|
+
(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__orig_val__21676_21917);
|
|
761
|
+
}
|
|
762
|
+
return cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5690__auto__);
|
|
763
|
+
})();
|
|
764
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [options,extra_args,banner], null);
|
|
765
|
+
}));
|
|
766
|
+
|
|
767
|
+
(clojure.tools.cli.cli.cljs$lang$maxFixedArity = (1));
|
|
768
|
+
|
|
769
|
+
/** @this {Function} */
|
|
770
|
+
(clojure.tools.cli.cli.cljs$lang$applyTo = (function (seq21668){
|
|
771
|
+
var G__21669 = cljs.core.first(seq21668);
|
|
772
|
+
var seq21668__$1 = cljs.core.next(seq21668);
|
|
773
|
+
var self__5754__auto__ = this;
|
|
774
|
+
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21669,seq21668__$1);
|
|
775
|
+
}));
|
|
776
|
+
|
|
777
|
+
clojure.tools.cli.spec_keys = new cljs.core.PersistentVector(null, 16, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"id","id",-1388402092),new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),new cljs.core.Keyword(null,"required","required",1807647006),new cljs.core.Keyword(null,"desc","desc",2093485764),new cljs.core.Keyword(null,"default","default",-1987822328),new cljs.core.Keyword(null,"default-desc","default-desc",324577013),new cljs.core.Keyword(null,"default-fn","default-fn",-473729550),new cljs.core.Keyword(null,"parse-fn","parse-fn",1818406345),new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603),new cljs.core.Keyword(null,"update-fn","update-fn",711087313),new cljs.core.Keyword(null,"multi","multi",-190293005),new cljs.core.Keyword(null,"post-validation","post-validation",-1787936392),new cljs.core.Keyword(null,"validate-fn","validate-fn",1430169944),new cljs.core.Keyword(null,"validate-msg","validate-msg",-1415932287),new cljs.core.Keyword(null,"missing","missing",362507769)], null);
|
|
778
|
+
/**
|
|
779
|
+
* Select only known spec entries from map and warn the user about unknown
|
|
780
|
+
* entries at development time.
|
|
781
|
+
*/
|
|
782
|
+
clojure.tools.cli.select_spec_keys = (function clojure$tools$cli$select_spec_keys(map){
|
|
783
|
+
if(cljs.core.truth_(cljs.core._STAR_assert_STAR_)){
|
|
784
|
+
var unknown_keys_21922 = cljs.core.keys(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,map,clojure.tools.cli.spec_keys));
|
|
785
|
+
if(cljs.core.seq(unknown_keys_21922)){
|
|
786
|
+
var msg_21923 = ["Warning: The following options to parse-opts are unrecognized: ",clojure.string.join.cljs$core$IFn$_invoke$arity$2(", ",unknown_keys_21922)].join('');
|
|
787
|
+
var _STAR_print_fn_STAR__orig_val__21680_21924 = cljs.core._STAR_print_fn_STAR_;
|
|
788
|
+
var _STAR_print_fn_STAR__temp_val__21681_21925 = cljs.core._STAR_print_err_fn_STAR_;
|
|
789
|
+
(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__temp_val__21681_21925);
|
|
790
|
+
|
|
791
|
+
try{cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([msg_21923], 0));
|
|
792
|
+
}finally {(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__orig_val__21680_21924);
|
|
793
|
+
}} else {
|
|
794
|
+
}
|
|
795
|
+
} else {
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
return cljs.core.select_keys(map,clojure.tools.cli.spec_keys);
|
|
799
|
+
});
|
|
800
|
+
clojure.tools.cli.compile_spec = (function clojure$tools$cli$compile_spec(spec){
|
|
801
|
+
var sopt_lopt_desc = cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((function (p1__21682_SHARP_){
|
|
802
|
+
return ((typeof p1__21682_SHARP_ === 'string') || ((p1__21682_SHARP_ == null)));
|
|
803
|
+
}),spec);
|
|
804
|
+
var spec_map = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(sopt_lopt_desc),spec));
|
|
805
|
+
var vec__21683 = sopt_lopt_desc;
|
|
806
|
+
var short_opt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21683,(0),null);
|
|
807
|
+
var long_opt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21683,(1),null);
|
|
808
|
+
var desc = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21683,(2),null);
|
|
809
|
+
var long_opt__$1 = (function (){var or__5045__auto__ = long_opt;
|
|
810
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
811
|
+
return or__5045__auto__;
|
|
812
|
+
} else {
|
|
813
|
+
return new cljs.core.Keyword(null,"long-opt","long-opt",-386094553).cljs$core$IFn$_invoke$arity$1(spec_map);
|
|
814
|
+
}
|
|
815
|
+
})();
|
|
816
|
+
var vec__21686 = (cljs.core.truth_(long_opt__$1)?cljs.core.rest(cljs.core.re_find(/^(--[^ =]+)(?:[ =](.*))?/,long_opt__$1)):null);
|
|
817
|
+
var long_opt__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21686,(0),null);
|
|
818
|
+
var req = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21686,(1),null);
|
|
819
|
+
var id = (cljs.core.truth_(long_opt__$2)?cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.nth.cljs$core$IFn$_invoke$arity$2(cljs.core.re_find(/^--(\[no-\])?(.*)/,long_opt__$2),(2))):null);
|
|
820
|
+
var validate = new cljs.core.Keyword(null,"validate","validate",-201300827).cljs$core$IFn$_invoke$arity$1(spec_map);
|
|
821
|
+
var vec__21689 = ((cljs.core.seq(validate))?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.map,cljs.core.vector,cljs.core.partition.cljs$core$IFn$_invoke$arity$4((2),(2),cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(null),validate)):null);
|
|
822
|
+
var validate_fn = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21689,(0),null);
|
|
823
|
+
var validate_msg = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21689,(1),null);
|
|
824
|
+
return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"id","id",-1388402092),id,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),short_opt,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),long_opt__$2,new cljs.core.Keyword(null,"required","required",1807647006),req,new cljs.core.Keyword(null,"desc","desc",2093485764),desc,new cljs.core.Keyword(null,"validate-fn","validate-fn",1430169944),validate_fn,new cljs.core.Keyword(null,"validate-msg","validate-msg",-1415932287),validate_msg], null),clojure.tools.cli.select_spec_keys(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(spec_map,new cljs.core.Keyword(null,"validate","validate",-201300827)))], 0));
|
|
825
|
+
});
|
|
826
|
+
clojure.tools.cli.distinct_QMARK__STAR_ = (function clojure$tools$cli$distinct_QMARK__STAR_(coll){
|
|
827
|
+
if(cljs.core.seq(coll)){
|
|
828
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct_QMARK_,coll);
|
|
829
|
+
} else {
|
|
830
|
+
return true;
|
|
831
|
+
}
|
|
832
|
+
});
|
|
833
|
+
clojure.tools.cli.wrap_val = (function clojure$tools$cli$wrap_val(map,key){
|
|
834
|
+
if(cljs.core.contains_QMARK_(map,key)){
|
|
835
|
+
return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(map,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [key], null),(function (p1__21693_SHARP_){
|
|
836
|
+
if((p1__21693_SHARP_ == null)){
|
|
837
|
+
return null;
|
|
838
|
+
} else {
|
|
839
|
+
if(cljs.core.coll_QMARK_(p1__21693_SHARP_)){
|
|
840
|
+
return p1__21693_SHARP_;
|
|
841
|
+
} else {
|
|
842
|
+
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [p1__21693_SHARP_], null);
|
|
843
|
+
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}));
|
|
847
|
+
} else {
|
|
848
|
+
return map;
|
|
849
|
+
}
|
|
850
|
+
});
|
|
851
|
+
/**
|
|
852
|
+
* Map a sequence of option specification vectors to a sequence of:
|
|
853
|
+
*
|
|
854
|
+
* {:id Keyword ; :server
|
|
855
|
+
* :short-opt String ; "-s"
|
|
856
|
+
* :long-opt String ; "--server"
|
|
857
|
+
* :required String ; "HOSTNAME"
|
|
858
|
+
* :desc String ; "Remote server"
|
|
859
|
+
* :default Object ; #<Inet4Address example.com/93.184.216.119>
|
|
860
|
+
* :default-desc String ; "example.com"
|
|
861
|
+
* :default-fn IFn ; (constantly 0)
|
|
862
|
+
* :parse-fn IFn ; #(InetAddress/getByName %)
|
|
863
|
+
* :assoc-fn IFn ; assoc
|
|
864
|
+
* :update-fn IFn ; identity
|
|
865
|
+
* :validate-fn [IFn] ; [#(instance? Inet4Address %)
|
|
866
|
+
* ; #(not (.isMulticastAddress %)]
|
|
867
|
+
* :validate-msg [String] ; ["Must be an IPv4 host"
|
|
868
|
+
* ; "Must not be a multicast address"]
|
|
869
|
+
* ; can also be a function (of the invalid argument)
|
|
870
|
+
* :post-validation Boolean ; default false
|
|
871
|
+
* :missing String ; "server must be specified"
|
|
872
|
+
* }
|
|
873
|
+
*
|
|
874
|
+
* :id defaults to the keywordized name of long-opt without leading dashes, but
|
|
875
|
+
* may be overridden in the option spec.
|
|
876
|
+
*
|
|
877
|
+
* The option spec entry `:validate [fn msg ...]` desugars into the two vector
|
|
878
|
+
* entries :validate-fn and :validate-msg. Multiple pairs of validation
|
|
879
|
+
* functions and error messages may be provided.
|
|
880
|
+
*
|
|
881
|
+
* A :default(-fn) entry will not be included in the compiled spec unless
|
|
882
|
+
* specified. The :default is applied before options are parsed, the :default-fn
|
|
883
|
+
* is applied after options are parsed (only where an option was not specified,
|
|
884
|
+
* and is passed the whole options map as its single argument, so defaults can
|
|
885
|
+
* be computed from other options if needed).
|
|
886
|
+
*
|
|
887
|
+
* An option spec may also be passed as a map containing the entries above,
|
|
888
|
+
* in which case that subset of the map is transferred directly to the result
|
|
889
|
+
* vector.
|
|
890
|
+
*
|
|
891
|
+
* An assertion error is thrown if any :id values are unset, or if there exist
|
|
892
|
+
* any duplicate :id, :short-opt, or :long-opt values, or if both :assoc-fn and
|
|
893
|
+
* :update-fn are provided for any single option.
|
|
894
|
+
*/
|
|
895
|
+
clojure.tools.cli.compile_option_specs = (function clojure$tools$cli$compile_option_specs(option_specs){
|
|
896
|
+
var _PERCENT_ = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec){
|
|
897
|
+
return clojure.tools.cli.wrap_val(clojure.tools.cli.wrap_val(((cljs.core.map_QMARK_(spec))?clojure.tools.cli.select_spec_keys(spec):clojure.tools.cli.compile_spec(spec)),new cljs.core.Keyword(null,"validate-fn","validate-fn",1430169944)),new cljs.core.Keyword(null,"validate-msg","validate-msg",-1415932287));
|
|
898
|
+
}),option_specs);
|
|
899
|
+
if(cljs.core.every_QMARK_(new cljs.core.Keyword(null,"id","id",-1388402092),_PERCENT_)){
|
|
900
|
+
} else {
|
|
901
|
+
throw (new Error("Assert failed: (every? :id %)"));
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
if(cljs.core.truth_(clojure.tools.cli.distinct_QMARK__STAR_(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092),cljs.core.filter.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"default","default",-1987822328),_PERCENT_))))){
|
|
905
|
+
} else {
|
|
906
|
+
throw (new Error("Assert failed: (distinct?* (map :id (filter :default %)))"));
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
if(cljs.core.truth_(clojure.tools.cli.distinct_QMARK__STAR_(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092),cljs.core.filter.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"default-fn","default-fn",-473729550),_PERCENT_))))){
|
|
910
|
+
} else {
|
|
911
|
+
throw (new Error("Assert failed: (distinct?* (map :id (filter :default-fn %)))"));
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
if(cljs.core.truth_(clojure.tools.cli.distinct_QMARK__STAR_(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),_PERCENT_))))){
|
|
915
|
+
} else {
|
|
916
|
+
throw (new Error("Assert failed: (distinct?* (remove nil? (map :short-opt %)))"));
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
if(cljs.core.truth_(clojure.tools.cli.distinct_QMARK__STAR_(cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),_PERCENT_))))){
|
|
920
|
+
} else {
|
|
921
|
+
throw (new Error("Assert failed: (distinct?* (remove nil? (map :long-opt %)))"));
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
if(cljs.core.every_QMARK_(cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.not,cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.every_QMARK_,cljs.core.identity)),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603),new cljs.core.Keyword(null,"update-fn","update-fn",711087313)),_PERCENT_))){
|
|
925
|
+
} else {
|
|
926
|
+
throw (new Error("Assert failed: (every? (comp not (partial every? identity)) (map (juxt :assoc-fn :update-fn) %))"));
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
return _PERCENT_;
|
|
930
|
+
});
|
|
931
|
+
clojure.tools.cli.default_option_map = (function clojure$tools$cli$default_option_map(specs,default_key){
|
|
932
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,s){
|
|
933
|
+
if(cljs.core.contains_QMARK_(s,default_key)){
|
|
934
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),(default_key.cljs$core$IFn$_invoke$arity$1 ? default_key.cljs$core$IFn$_invoke$arity$1(s) : default_key.call(null,s)));
|
|
935
|
+
} else {
|
|
936
|
+
return m;
|
|
937
|
+
}
|
|
938
|
+
}),cljs.core.PersistentArrayMap.EMPTY,specs);
|
|
939
|
+
});
|
|
940
|
+
/**
|
|
941
|
+
* Given specs, returns a map of spec id to error message if missing.
|
|
942
|
+
*/
|
|
943
|
+
clojure.tools.cli.missing_errors = (function clojure$tools$cli$missing_errors(specs){
|
|
944
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,s){
|
|
945
|
+
if(cljs.core.truth_(new cljs.core.Keyword(null,"missing","missing",362507769).cljs$core$IFn$_invoke$arity$1(s))){
|
|
946
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,"missing","missing",362507769).cljs$core$IFn$_invoke$arity$1(s));
|
|
947
|
+
} else {
|
|
948
|
+
return m;
|
|
949
|
+
}
|
|
950
|
+
}),cljs.core.PersistentArrayMap.EMPTY,specs);
|
|
951
|
+
});
|
|
952
|
+
clojure.tools.cli.find_spec = (function clojure$tools$cli$find_spec(specs,opt_type,opt){
|
|
953
|
+
return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (spec){
|
|
954
|
+
var temp__5804__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,opt_type);
|
|
955
|
+
if(cljs.core.truth_(temp__5804__auto__)){
|
|
956
|
+
var spec_opt = temp__5804__auto__;
|
|
957
|
+
var flag_tail = cljs.core.second(cljs.core.re_find(/^--\[no-\](.*)/,spec_opt));
|
|
958
|
+
var candidates = (cljs.core.truth_(flag_tail)?cljs.core.PersistentHashSet.createAsIfByAssoc([["--",cljs.core.str.cljs$core$IFn$_invoke$arity$1(flag_tail)].join(''),["--no-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(flag_tail)].join('')]):cljs.core.PersistentHashSet.createAsIfByAssoc([spec_opt]));
|
|
959
|
+
return cljs.core.contains_QMARK_(candidates,opt);
|
|
960
|
+
} else {
|
|
961
|
+
return null;
|
|
962
|
+
}
|
|
963
|
+
}),specs));
|
|
964
|
+
});
|
|
965
|
+
clojure.tools.cli.pr_join = (function clojure$tools$cli$pr_join(var_args){
|
|
966
|
+
var args__5775__auto__ = [];
|
|
967
|
+
var len__5769__auto___21931 = arguments.length;
|
|
968
|
+
var i__5770__auto___21933 = (0);
|
|
969
|
+
while(true){
|
|
970
|
+
if((i__5770__auto___21933 < len__5769__auto___21931)){
|
|
971
|
+
args__5775__auto__.push((arguments[i__5770__auto___21933]));
|
|
972
|
+
|
|
973
|
+
var G__21934 = (i__5770__auto___21933 + (1));
|
|
974
|
+
i__5770__auto___21933 = G__21934;
|
|
975
|
+
continue;
|
|
976
|
+
} else {
|
|
977
|
+
}
|
|
978
|
+
break;
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
var argseq__5776__auto__ = ((((0) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((0)),(0),null)):null);
|
|
982
|
+
return clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(argseq__5776__auto__);
|
|
983
|
+
});
|
|
984
|
+
|
|
985
|
+
(clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic = (function (xs){
|
|
986
|
+
return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([clojure.string.join.cljs$core$IFn$_invoke$arity$2(" ",xs)], 0));
|
|
987
|
+
}));
|
|
988
|
+
|
|
989
|
+
(clojure.tools.cli.pr_join.cljs$lang$maxFixedArity = (0));
|
|
990
|
+
|
|
991
|
+
/** @this {Function} */
|
|
992
|
+
(clojure.tools.cli.pr_join.cljs$lang$applyTo = (function (seq21694){
|
|
993
|
+
var self__5755__auto__ = this;
|
|
994
|
+
return self__5755__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq21694));
|
|
995
|
+
}));
|
|
996
|
+
|
|
997
|
+
clojure.tools.cli.missing_required_error = (function clojure$tools$cli$missing_required_error(opt,example_required){
|
|
998
|
+
return ["Missing required argument for ",clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opt,example_required], 0))].join('');
|
|
999
|
+
});
|
|
1000
|
+
clojure.tools.cli.parse_error = (function clojure$tools$cli$parse_error(opt,optarg,msg){
|
|
1001
|
+
return ["Error while parsing option ",clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opt,optarg], 0)),": ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(msg)].join('');
|
|
1002
|
+
});
|
|
1003
|
+
clojure.tools.cli.validation_error = (function clojure$tools$cli$validation_error(value,opt,optarg,msg){
|
|
1004
|
+
return ["Failed to validate ",clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opt,optarg], 0)),(cljs.core.truth_(msg)?[": ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(((typeof msg === 'string')?msg:(msg.cljs$core$IFn$_invoke$arity$1 ? msg.cljs$core$IFn$_invoke$arity$1(value) : msg.call(null,value))))].join(''):"")].join('');
|
|
1005
|
+
});
|
|
1006
|
+
clojure.tools.cli.validate = (function clojure$tools$cli$validate(value,spec,opt,optarg){
|
|
1007
|
+
var map__21695 = spec;
|
|
1008
|
+
var map__21695__$1 = cljs.core.__destructure_map(map__21695);
|
|
1009
|
+
var validate_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21695__$1,new cljs.core.Keyword(null,"validate-fn","validate-fn",1430169944));
|
|
1010
|
+
var validate_msg = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21695__$1,new cljs.core.Keyword(null,"validate-msg","validate-msg",-1415932287));
|
|
1011
|
+
var or__5045__auto__ = (function (){var G__21702 = validate_fn;
|
|
1012
|
+
var vec__21704 = G__21702;
|
|
1013
|
+
var seq__21705 = cljs.core.seq(vec__21704);
|
|
1014
|
+
var first__21706 = cljs.core.first(seq__21705);
|
|
1015
|
+
var seq__21705__$1 = cljs.core.next(seq__21705);
|
|
1016
|
+
var vfn = first__21706;
|
|
1017
|
+
var vfns = seq__21705__$1;
|
|
1018
|
+
var G__21703 = validate_msg;
|
|
1019
|
+
var vec__21707 = G__21703;
|
|
1020
|
+
var seq__21708 = cljs.core.seq(vec__21707);
|
|
1021
|
+
var first__21709 = cljs.core.first(seq__21708);
|
|
1022
|
+
var seq__21708__$1 = cljs.core.next(seq__21708);
|
|
1023
|
+
var msg = first__21709;
|
|
1024
|
+
var msgs = seq__21708__$1;
|
|
1025
|
+
var G__21702__$1 = G__21702;
|
|
1026
|
+
var G__21703__$1 = G__21703;
|
|
1027
|
+
while(true){
|
|
1028
|
+
var vec__21717 = G__21702__$1;
|
|
1029
|
+
var seq__21718 = cljs.core.seq(vec__21717);
|
|
1030
|
+
var first__21719 = cljs.core.first(seq__21718);
|
|
1031
|
+
var seq__21718__$1 = cljs.core.next(seq__21718);
|
|
1032
|
+
var vfn__$1 = first__21719;
|
|
1033
|
+
var vfns__$1 = seq__21718__$1;
|
|
1034
|
+
var vec__21720 = G__21703__$1;
|
|
1035
|
+
var seq__21721 = cljs.core.seq(vec__21720);
|
|
1036
|
+
var first__21722 = cljs.core.first(seq__21721);
|
|
1037
|
+
var seq__21721__$1 = cljs.core.next(seq__21721);
|
|
1038
|
+
var msg__$1 = first__21722;
|
|
1039
|
+
var msgs__$1 = seq__21721__$1;
|
|
1040
|
+
if(cljs.core.truth_(vfn__$1)){
|
|
1041
|
+
if(cljs.core.truth_((function (){try{return (vfn__$1.cljs$core$IFn$_invoke$arity$1 ? vfn__$1.cljs$core$IFn$_invoke$arity$1(value) : vfn__$1.call(null,value));
|
|
1042
|
+
}catch (e21723){var _ = e21723;
|
|
1043
|
+
return null;
|
|
1044
|
+
}})())){
|
|
1045
|
+
var G__21940 = vfns__$1;
|
|
1046
|
+
var G__21941 = msgs__$1;
|
|
1047
|
+
G__21702__$1 = G__21940;
|
|
1048
|
+
G__21703__$1 = G__21941;
|
|
1049
|
+
continue;
|
|
1050
|
+
} else {
|
|
1051
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("clojure.tools.cli","error","clojure.tools.cli/error",1727067675),clojure.tools.cli.validation_error(value,opt,optarg,msg__$1)], null);
|
|
1052
|
+
}
|
|
1053
|
+
} else {
|
|
1054
|
+
return null;
|
|
1055
|
+
}
|
|
1056
|
+
break;
|
|
1057
|
+
}
|
|
1058
|
+
})();
|
|
1059
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
1060
|
+
return or__5045__auto__;
|
|
1061
|
+
} else {
|
|
1062
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [value,null], null);
|
|
1063
|
+
}
|
|
1064
|
+
});
|
|
1065
|
+
clojure.tools.cli.parse_value = (function clojure$tools$cli$parse_value(value,spec,opt,optarg){
|
|
1066
|
+
var map__21724 = spec;
|
|
1067
|
+
var map__21724__$1 = cljs.core.__destructure_map(map__21724);
|
|
1068
|
+
var parse_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21724__$1,new cljs.core.Keyword(null,"parse-fn","parse-fn",1818406345));
|
|
1069
|
+
var vec__21725 = (cljs.core.truth_(parse_fn)?(function (){try{return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(parse_fn.cljs$core$IFn$_invoke$arity$1 ? parse_fn.cljs$core$IFn$_invoke$arity$1(value) : parse_fn.call(null,value)),null], null);
|
|
1070
|
+
}catch (e21728){var e = e21728;
|
|
1071
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,clojure.tools.cli.parse_error(opt,optarg,cljs.core.str.cljs$core$IFn$_invoke$arity$1(e))], null);
|
|
1072
|
+
}})():new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [value,null], null));
|
|
1073
|
+
var value__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21725,(0),null);
|
|
1074
|
+
var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21725,(1),null);
|
|
1075
|
+
if(cljs.core.truth_(error)){
|
|
1076
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("clojure.tools.cli","error","clojure.tools.cli/error",1727067675),error], null);
|
|
1077
|
+
} else {
|
|
1078
|
+
if(cljs.core.truth_(new cljs.core.Keyword(null,"post-validation","post-validation",-1787936392).cljs$core$IFn$_invoke$arity$1(spec))){
|
|
1079
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [value__$1,null], null);
|
|
1080
|
+
} else {
|
|
1081
|
+
return clojure.tools.cli.validate(value__$1,spec,opt,optarg);
|
|
1082
|
+
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
});
|
|
1086
|
+
clojure.tools.cli.allow_no_QMARK_ = (function clojure$tools$cli$allow_no_QMARK_(spec){
|
|
1087
|
+
var and__5043__auto__ = new cljs.core.Keyword(null,"long-opt","long-opt",-386094553).cljs$core$IFn$_invoke$arity$1(spec);
|
|
1088
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
1089
|
+
return cljs.core.re_find(/^--\[no-\]/,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553).cljs$core$IFn$_invoke$arity$1(spec));
|
|
1090
|
+
} else {
|
|
1091
|
+
return and__5043__auto__;
|
|
1092
|
+
}
|
|
1093
|
+
});
|
|
1094
|
+
clojure.tools.cli.neg_flag_QMARK_ = (function clojure$tools$cli$neg_flag_QMARK_(spec,opt){
|
|
1095
|
+
var and__5043__auto__ = clojure.tools.cli.allow_no_QMARK_(spec);
|
|
1096
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
1097
|
+
return cljs.core.re_find(/^--no-/,opt);
|
|
1098
|
+
} else {
|
|
1099
|
+
return and__5043__auto__;
|
|
1100
|
+
}
|
|
1101
|
+
});
|
|
1102
|
+
clojure.tools.cli.parse_optarg = (function clojure$tools$cli$parse_optarg(spec,opt,optarg){
|
|
1103
|
+
var map__21729 = spec;
|
|
1104
|
+
var map__21729__$1 = cljs.core.__destructure_map(map__21729);
|
|
1105
|
+
var required = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21729__$1,new cljs.core.Keyword(null,"required","required",1807647006));
|
|
1106
|
+
if(cljs.core.truth_((function (){var and__5043__auto__ = required;
|
|
1107
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
1108
|
+
return (optarg == null);
|
|
1109
|
+
} else {
|
|
1110
|
+
return and__5043__auto__;
|
|
1111
|
+
}
|
|
1112
|
+
})())){
|
|
1113
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("clojure.tools.cli","error","clojure.tools.cli/error",1727067675),clojure.tools.cli.missing_required_error(opt,required)], null);
|
|
1114
|
+
} else {
|
|
1115
|
+
var value = (cljs.core.truth_(required)?optarg:cljs.core.not(clojure.tools.cli.neg_flag_QMARK_(spec,opt)));
|
|
1116
|
+
return clojure.tools.cli.parse_value(value,spec,opt,optarg);
|
|
1117
|
+
}
|
|
1118
|
+
});
|
|
1119
|
+
/**
|
|
1120
|
+
* Reduce sequence of [opt-type opt ?optarg?] tokens into a map of
|
|
1121
|
+
* {option-id value} merged over the default values in the option
|
|
1122
|
+
* specifications.
|
|
1123
|
+
*
|
|
1124
|
+
* If the :no-defaults flag is true, only options specified in the tokens are
|
|
1125
|
+
* included in the option-map.
|
|
1126
|
+
*
|
|
1127
|
+
* Unknown options, missing options, missing required arguments, option
|
|
1128
|
+
* argument parsing exceptions, and validation failures are collected into
|
|
1129
|
+
* a vector of error message strings.
|
|
1130
|
+
*
|
|
1131
|
+
* If the :strict flag is true, required arguments that match other options
|
|
1132
|
+
* are treated as missing, instead of a literal value beginning with - or --.
|
|
1133
|
+
*
|
|
1134
|
+
* Returns [option-map error-messages-vector].
|
|
1135
|
+
*/
|
|
1136
|
+
clojure.tools.cli.parse_option_tokens = (function clojure$tools$cli$parse_option_tokens(var_args){
|
|
1137
|
+
var args__5775__auto__ = [];
|
|
1138
|
+
var len__5769__auto___21945 = arguments.length;
|
|
1139
|
+
var i__5770__auto___21946 = (0);
|
|
1140
|
+
while(true){
|
|
1141
|
+
if((i__5770__auto___21946 < len__5769__auto___21945)){
|
|
1142
|
+
args__5775__auto__.push((arguments[i__5770__auto___21946]));
|
|
1143
|
+
|
|
1144
|
+
var G__21947 = (i__5770__auto___21946 + (1));
|
|
1145
|
+
i__5770__auto___21946 = G__21947;
|
|
1146
|
+
continue;
|
|
1147
|
+
} else {
|
|
1148
|
+
}
|
|
1149
|
+
break;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
var argseq__5776__auto__ = ((((2) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((2)),(0),null)):null);
|
|
1153
|
+
return clojure.tools.cli.parse_option_tokens.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5776__auto__);
|
|
1154
|
+
});
|
|
1155
|
+
|
|
1156
|
+
(clojure.tools.cli.parse_option_tokens.cljs$core$IFn$_invoke$arity$variadic = (function (specs,tokens,options){
|
|
1157
|
+
var map__21736 = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,options);
|
|
1158
|
+
var map__21736__$1 = cljs.core.__destructure_map(map__21736);
|
|
1159
|
+
var no_defaults = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21736__$1,new cljs.core.Keyword(null,"no-defaults","no-defaults",-1025033878));
|
|
1160
|
+
var strict = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21736__$1,new cljs.core.Keyword(null,"strict","strict",-665564191));
|
|
1161
|
+
var defaults = clojure.tools.cli.default_option_map(specs,new cljs.core.Keyword(null,"default","default",-1987822328));
|
|
1162
|
+
var default_fns = clojure.tools.cli.default_option_map(specs,new cljs.core.Keyword(null,"default-fn","default-fn",-473729550));
|
|
1163
|
+
var requireds = clojure.tools.cli.missing_errors(specs);
|
|
1164
|
+
return (function (p1__21732_SHARP_){
|
|
1165
|
+
var vec__21737 = p1__21732_SHARP_;
|
|
1166
|
+
var m = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21737,(0),null);
|
|
1167
|
+
var ids = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21737,(1),null);
|
|
1168
|
+
var errors = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21737,(2),null);
|
|
1169
|
+
if(cljs.core.truth_(no_defaults)){
|
|
1170
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.select_keys(m,ids),errors], null);
|
|
1171
|
+
} else {
|
|
1172
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,errors], null);
|
|
1173
|
+
}
|
|
1174
|
+
})((function (p1__21731_SHARP_){
|
|
1175
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__21740,p__21741){
|
|
1176
|
+
var vec__21742 = p__21740;
|
|
1177
|
+
var m = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21742,(0),null);
|
|
1178
|
+
var ids = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21742,(1),null);
|
|
1179
|
+
var errors = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21742,(2),null);
|
|
1180
|
+
var vec__21745 = p__21741;
|
|
1181
|
+
var id = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21745,(0),null);
|
|
1182
|
+
var f = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21745,(1),null);
|
|
1183
|
+
if(cljs.core.contains_QMARK_(cljs.core.set(ids),id)){
|
|
1184
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,errors], null);
|
|
1185
|
+
} else {
|
|
1186
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,id,(function (){var G__21748 = cljs.core.first(p1__21731_SHARP_);
|
|
1187
|
+
return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__21748) : f.call(null,G__21748));
|
|
1188
|
+
})()),ids,errors], null);
|
|
1189
|
+
}
|
|
1190
|
+
}),p1__21731_SHARP_,default_fns);
|
|
1191
|
+
})((function (p1__21730_SHARP_){
|
|
1192
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__21749,p__21750){
|
|
1193
|
+
var vec__21751 = p__21749;
|
|
1194
|
+
var m = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21751,(0),null);
|
|
1195
|
+
var ids = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21751,(1),null);
|
|
1196
|
+
var errors = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21751,(2),null);
|
|
1197
|
+
var vec__21754 = p__21750;
|
|
1198
|
+
var id = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21754,(0),null);
|
|
1199
|
+
var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21754,(1),null);
|
|
1200
|
+
if(cljs.core.contains_QMARK_(m,id)){
|
|
1201
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,errors], null);
|
|
1202
|
+
} else {
|
|
1203
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(errors,error)], null);
|
|
1204
|
+
}
|
|
1205
|
+
}),p1__21730_SHARP_,requireds);
|
|
1206
|
+
})(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p__21758,p__21759){
|
|
1207
|
+
var vec__21760 = p__21758;
|
|
1208
|
+
var m = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21760,(0),null);
|
|
1209
|
+
var ids = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21760,(1),null);
|
|
1210
|
+
var errors = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21760,(2),null);
|
|
1211
|
+
var vec__21763 = p__21759;
|
|
1212
|
+
var opt_type = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21763,(0),null);
|
|
1213
|
+
var opt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21763,(1),null);
|
|
1214
|
+
var optarg = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21763,(2),null);
|
|
1215
|
+
var temp__5802__auto__ = clojure.tools.cli.find_spec(specs,opt_type,opt);
|
|
1216
|
+
if(cljs.core.truth_(temp__5802__auto__)){
|
|
1217
|
+
var spec = temp__5802__auto__;
|
|
1218
|
+
var vec__21766 = clojure.tools.cli.parse_optarg(spec,opt,optarg);
|
|
1219
|
+
var value = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21766,(0),null);
|
|
1220
|
+
var error = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21766,(1),null);
|
|
1221
|
+
var id = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(spec);
|
|
1222
|
+
if((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(value,new cljs.core.Keyword("clojure.tools.cli","error","clojure.tools.cli/error",1727067675))))){
|
|
1223
|
+
if(cljs.core.truth_((function (){var and__5043__auto__ = strict;
|
|
1224
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
1225
|
+
var or__5045__auto__ = clojure.tools.cli.find_spec(specs,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),optarg);
|
|
1226
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
1227
|
+
return or__5045__auto__;
|
|
1228
|
+
} else {
|
|
1229
|
+
return clojure.tools.cli.find_spec(specs,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),optarg);
|
|
1230
|
+
}
|
|
1231
|
+
} else {
|
|
1232
|
+
return and__5043__auto__;
|
|
1233
|
+
}
|
|
1234
|
+
})())){
|
|
1235
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(errors,clojure.tools.cli.missing_required_error(opt,new cljs.core.Keyword(null,"required","required",1807647006).cljs$core$IFn$_invoke$arity$1(spec)))], null);
|
|
1236
|
+
} else {
|
|
1237
|
+
var m_SINGLEQUOTE_ = (function (){var temp__5802__auto____$1 = new cljs.core.Keyword(null,"update-fn","update-fn",711087313).cljs$core$IFn$_invoke$arity$1(spec);
|
|
1238
|
+
if(cljs.core.truth_(temp__5802__auto____$1)){
|
|
1239
|
+
var update_fn = temp__5802__auto____$1;
|
|
1240
|
+
if(cljs.core.truth_(new cljs.core.Keyword(null,"multi","multi",-190293005).cljs$core$IFn$_invoke$arity$1(spec))){
|
|
1241
|
+
return cljs.core.update.cljs$core$IFn$_invoke$arity$4(m,id,update_fn,value);
|
|
1242
|
+
} else {
|
|
1243
|
+
return cljs.core.update.cljs$core$IFn$_invoke$arity$3(m,id,update_fn);
|
|
1244
|
+
}
|
|
1245
|
+
} else {
|
|
1246
|
+
var fexpr__21770 = new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603).cljs$core$IFn$_invoke$arity$2(spec,cljs.core.assoc);
|
|
1247
|
+
return (fexpr__21770.cljs$core$IFn$_invoke$arity$3 ? fexpr__21770.cljs$core$IFn$_invoke$arity$3(m,id,value) : fexpr__21770.call(null,m,id,value));
|
|
1248
|
+
}
|
|
1249
|
+
})();
|
|
1250
|
+
if(cljs.core.truth_(new cljs.core.Keyword(null,"post-validation","post-validation",-1787936392).cljs$core$IFn$_invoke$arity$1(spec))){
|
|
1251
|
+
var vec__21771 = clojure.tools.cli.validate(cljs.core.get.cljs$core$IFn$_invoke$arity$2(m_SINGLEQUOTE_,id),spec,opt,optarg);
|
|
1252
|
+
var value__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21771,(0),null);
|
|
1253
|
+
var error__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21771,(1),null);
|
|
1254
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(value__$1,new cljs.core.Keyword("clojure.tools.cli","error","clojure.tools.cli/error",1727067675))){
|
|
1255
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(errors,error__$1)], null);
|
|
1256
|
+
} else {
|
|
1257
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m_SINGLEQUOTE_,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ids,id),errors], null);
|
|
1258
|
+
}
|
|
1259
|
+
} else {
|
|
1260
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m_SINGLEQUOTE_,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(ids,id),errors], null);
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1263
|
+
} else {
|
|
1264
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(errors,error)], null);
|
|
1265
|
+
}
|
|
1266
|
+
} else {
|
|
1267
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(errors,["Unknown option: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([opt], 0))].join(''))], null);
|
|
1268
|
+
}
|
|
1269
|
+
}),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [defaults,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY], null),tokens))));
|
|
1270
|
+
}));
|
|
1271
|
+
|
|
1272
|
+
(clojure.tools.cli.parse_option_tokens.cljs$lang$maxFixedArity = (2));
|
|
1273
|
+
|
|
1274
|
+
/** @this {Function} */
|
|
1275
|
+
(clojure.tools.cli.parse_option_tokens.cljs$lang$applyTo = (function (seq21733){
|
|
1276
|
+
var G__21734 = cljs.core.first(seq21733);
|
|
1277
|
+
var seq21733__$1 = cljs.core.next(seq21733);
|
|
1278
|
+
var G__21735 = cljs.core.first(seq21733__$1);
|
|
1279
|
+
var seq21733__$2 = cljs.core.next(seq21733__$1);
|
|
1280
|
+
var self__5754__auto__ = this;
|
|
1281
|
+
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21734,G__21735,seq21733__$2);
|
|
1282
|
+
}));
|
|
1283
|
+
|
|
1284
|
+
/**
|
|
1285
|
+
* Given a single compiled option spec, turn it into a formatted string,
|
|
1286
|
+
* optionally with its default values if requested.
|
|
1287
|
+
*/
|
|
1288
|
+
clojure.tools.cli.make_summary_part = (function clojure$tools$cli$make_summary_part(show_defaults_QMARK_,spec){
|
|
1289
|
+
var map__21776 = spec;
|
|
1290
|
+
var map__21776__$1 = cljs.core.__destructure_map(map__21776);
|
|
1291
|
+
var short_opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699));
|
|
1292
|
+
var long_opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553));
|
|
1293
|
+
var required = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"required","required",1807647006));
|
|
1294
|
+
var desc = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"desc","desc",2093485764));
|
|
1295
|
+
var default$ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"default","default",-1987822328));
|
|
1296
|
+
var default_desc = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"default-desc","default-desc",324577013));
|
|
1297
|
+
var default_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21776__$1,new cljs.core.Keyword(null,"default-fn","default-fn",-473729550));
|
|
1298
|
+
var opt = (cljs.core.truth_((function (){var and__5043__auto__ = short_opt;
|
|
1299
|
+
if(cljs.core.truth_(and__5043__auto__)){
|
|
1300
|
+
return long_opt;
|
|
1301
|
+
} else {
|
|
1302
|
+
return and__5043__auto__;
|
|
1303
|
+
}
|
|
1304
|
+
})())?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(short_opt),", ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(long_opt)].join(''):(cljs.core.truth_(long_opt)?[" ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(long_opt)].join(''):(cljs.core.truth_(short_opt)?short_opt:null)));
|
|
1305
|
+
var vec__21777 = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(required)?[cljs.core.str.cljs$core$IFn$_invoke$arity$1(opt)," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(required)].join(''):opt),(function (){var or__5045__auto__ = default_desc;
|
|
1306
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
1307
|
+
return or__5045__auto__;
|
|
1308
|
+
} else {
|
|
1309
|
+
var or__5045__auto____$1 = ((cljs.core.contains_QMARK_(spec,new cljs.core.Keyword(null,"default","default",-1987822328)))?(((!((default$ == null))))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(default$):"nil"):null);
|
|
1310
|
+
if(cljs.core.truth_(or__5045__auto____$1)){
|
|
1311
|
+
return or__5045__auto____$1;
|
|
1312
|
+
} else {
|
|
1313
|
+
var or__5045__auto____$2 = (cljs.core.truth_(default_fn)?"<computed>":null);
|
|
1314
|
+
if(cljs.core.truth_(or__5045__auto____$2)){
|
|
1315
|
+
return or__5045__auto____$2;
|
|
1316
|
+
} else {
|
|
1317
|
+
return "";
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
})()], null);
|
|
1322
|
+
var opt__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21777,(0),null);
|
|
1323
|
+
var dd = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21777,(1),null);
|
|
1324
|
+
if(cljs.core.truth_(show_defaults_QMARK_)){
|
|
1325
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [opt__$1,dd,(function (){var or__5045__auto__ = desc;
|
|
1326
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
1327
|
+
return or__5045__auto__;
|
|
1328
|
+
} else {
|
|
1329
|
+
return "";
|
|
1330
|
+
}
|
|
1331
|
+
})()], null);
|
|
1332
|
+
} else {
|
|
1333
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [opt__$1,(function (){var or__5045__auto__ = desc;
|
|
1334
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
1335
|
+
return or__5045__auto__;
|
|
1336
|
+
} else {
|
|
1337
|
+
return "";
|
|
1338
|
+
}
|
|
1339
|
+
})()], null);
|
|
1340
|
+
}
|
|
1341
|
+
});
|
|
1342
|
+
/**
|
|
1343
|
+
* Format a sequence of summary parts into columns. lens is a sequence of
|
|
1344
|
+
* lengths to use for parts. There are two sequences of lengths if we are
|
|
1345
|
+
* not displaying defaults. There are three sequences of lengths if we
|
|
1346
|
+
* are showing defaults.
|
|
1347
|
+
*/
|
|
1348
|
+
clojure.tools.cli.format_lines = (function clojure$tools$cli$format_lines(lens,parts){
|
|
1349
|
+
var fmt = clojure.tools.cli.make_format(lens);
|
|
1350
|
+
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21782_SHARP_){
|
|
1351
|
+
return clojure.string.trimr(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(clojure.tools.cli.format,fmt,p1__21782_SHARP_));
|
|
1352
|
+
}),parts);
|
|
1353
|
+
});
|
|
1354
|
+
clojure.tools.cli.required_arguments = (function clojure$tools$cli$required_arguments(specs){
|
|
1355
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,p__21784){
|
|
1356
|
+
var map__21785 = p__21784;
|
|
1357
|
+
var map__21785__$1 = cljs.core.__destructure_map(map__21785);
|
|
1358
|
+
var required = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21785__$1,new cljs.core.Keyword(null,"required","required",1807647006));
|
|
1359
|
+
var short_opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21785__$1,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699));
|
|
1360
|
+
var long_opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21785__$1,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553));
|
|
1361
|
+
if(cljs.core.truth_(required)){
|
|
1362
|
+
return cljs.core.into.cljs$core$IFn$_invoke$arity$2(s,cljs.core.remove.cljs$core$IFn$_invoke$arity$2(cljs.core.nil_QMARK_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [short_opt,long_opt], null)));
|
|
1363
|
+
} else {
|
|
1364
|
+
return s;
|
|
1365
|
+
}
|
|
1366
|
+
}),cljs.core.PersistentHashSet.EMPTY,specs);
|
|
1367
|
+
});
|
|
1368
|
+
/**
|
|
1369
|
+
* Reduce options specs into a options summary for printing at a terminal.
|
|
1370
|
+
* Note that the specs argument should be the compiled version. That effectively
|
|
1371
|
+
* means that you shouldn't call summarize directly. When you call parse-opts
|
|
1372
|
+
* you get back a :summary key which is the result of calling summarize (or
|
|
1373
|
+
* your user-supplied :summary-fn option) on the compiled option specs.
|
|
1374
|
+
*/
|
|
1375
|
+
clojure.tools.cli.summarize = (function clojure$tools$cli$summarize(specs){
|
|
1376
|
+
if(cljs.core.seq(specs)){
|
|
1377
|
+
var show_defaults_QMARK_ = cljs.core.some((function (p1__21786_SHARP_){
|
|
1378
|
+
return ((cljs.core.contains_QMARK_(p1__21786_SHARP_,new cljs.core.Keyword(null,"default","default",-1987822328))) || (cljs.core.contains_QMARK_(p1__21786_SHARP_,new cljs.core.Keyword(null,"default-fn","default-fn",-473729550))));
|
|
1379
|
+
}),specs);
|
|
1380
|
+
var parts = cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.tools.cli.make_summary_part,show_defaults_QMARK_),specs);
|
|
1381
|
+
var lens = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.map,(function() {
|
|
1382
|
+
var G__21958__delegate = function (cols){
|
|
1383
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,cols));
|
|
1384
|
+
};
|
|
1385
|
+
var G__21958 = function (var_args){
|
|
1386
|
+
var cols = null;
|
|
1387
|
+
if (arguments.length > 0) {
|
|
1388
|
+
var G__21959__i = 0, G__21959__a = new Array(arguments.length - 0);
|
|
1389
|
+
while (G__21959__i < G__21959__a.length) {G__21959__a[G__21959__i] = arguments[G__21959__i + 0]; ++G__21959__i;}
|
|
1390
|
+
cols = new cljs.core.IndexedSeq(G__21959__a,0,null);
|
|
1391
|
+
}
|
|
1392
|
+
return G__21958__delegate.call(this,cols);};
|
|
1393
|
+
G__21958.cljs$lang$maxFixedArity = 0;
|
|
1394
|
+
G__21958.cljs$lang$applyTo = (function (arglist__21960){
|
|
1395
|
+
var cols = cljs.core.seq(arglist__21960);
|
|
1396
|
+
return G__21958__delegate(cols);
|
|
1397
|
+
});
|
|
1398
|
+
G__21958.cljs$core$IFn$_invoke$arity$variadic = G__21958__delegate;
|
|
1399
|
+
return G__21958;
|
|
1400
|
+
})()
|
|
1401
|
+
,parts);
|
|
1402
|
+
var lines = clojure.tools.cli.format_lines(lens,parts);
|
|
1403
|
+
return clojure.string.join.cljs$core$IFn$_invoke$arity$2("\n",lines);
|
|
1404
|
+
} else {
|
|
1405
|
+
return "";
|
|
1406
|
+
}
|
|
1407
|
+
});
|
|
1408
|
+
/**
|
|
1409
|
+
* Extract the map of default options from a sequence of option vectors.
|
|
1410
|
+
*
|
|
1411
|
+
* As of 0.4.1, this also applies any :default-fn present.
|
|
1412
|
+
*/
|
|
1413
|
+
clojure.tools.cli.get_default_options = (function clojure$tools$cli$get_default_options(option_specs){
|
|
1414
|
+
var specs = clojure.tools.cli.compile_option_specs(option_specs);
|
|
1415
|
+
var vals = clojure.tools.cli.default_option_map(specs,new cljs.core.Keyword(null,"default","default",-1987822328));
|
|
1416
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__21789){
|
|
1417
|
+
var vec__21790 = p__21789;
|
|
1418
|
+
var id = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21790,(0),null);
|
|
1419
|
+
var f = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21790,(1),null);
|
|
1420
|
+
if(cljs.core.contains_QMARK_(m,id)){
|
|
1421
|
+
return m;
|
|
1422
|
+
} else {
|
|
1423
|
+
return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(m,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [id], null),(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(vals) : f.call(null,vals)));
|
|
1424
|
+
}
|
|
1425
|
+
}),vals,clojure.tools.cli.default_option_map(specs,new cljs.core.Keyword(null,"default-fn","default-fn",-473729550)));
|
|
1426
|
+
});
|
|
1427
|
+
/**
|
|
1428
|
+
* Parse arguments sequence according to given option specifications and the
|
|
1429
|
+
* GNU Program Argument Syntax Conventions:
|
|
1430
|
+
*
|
|
1431
|
+
* https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
|
|
1432
|
+
*
|
|
1433
|
+
* Option specifications are a sequence of vectors with the following format:
|
|
1434
|
+
*
|
|
1435
|
+
* [short-opt long-opt-with-required-description description
|
|
1436
|
+
* :property value]
|
|
1437
|
+
*
|
|
1438
|
+
* The first three string parameters in an option spec are positional and
|
|
1439
|
+
* optional, and may be nil in order to specify a later parameter.
|
|
1440
|
+
*
|
|
1441
|
+
* By default, options are toggles that default to nil, but the second string
|
|
1442
|
+
* parameter may be used to specify that an option requires an argument.
|
|
1443
|
+
*
|
|
1444
|
+
* e.g. ["-p" "--port PORT"] specifies that --port requires an argument,
|
|
1445
|
+
* of which PORT is a short description.
|
|
1446
|
+
*
|
|
1447
|
+
* The :property value pairs are optional and take precedence over the
|
|
1448
|
+
* positional string arguments. The valid properties are:
|
|
1449
|
+
*
|
|
1450
|
+
* :id The key for this option in the resulting option map. This
|
|
1451
|
+
* is normally set to the keywordized name of the long option
|
|
1452
|
+
* without the leading dashes.
|
|
1453
|
+
*
|
|
1454
|
+
* Multiple option entries can share the same :id in order to
|
|
1455
|
+
* transform a value in different ways, but only one of these
|
|
1456
|
+
* option entries may contain a :default(-fn) entry.
|
|
1457
|
+
*
|
|
1458
|
+
* This option is mandatory.
|
|
1459
|
+
*
|
|
1460
|
+
* :short-opt The short format for this option, normally set by the first
|
|
1461
|
+
* positional string parameter: e.g. "-p". Must be unique.
|
|
1462
|
+
*
|
|
1463
|
+
* :long-opt The long format for this option, normally set by the second
|
|
1464
|
+
* positional string parameter; e.g. "--port". Must be unique.
|
|
1465
|
+
*
|
|
1466
|
+
* :required A description of the required argument for this option if
|
|
1467
|
+
* one is required; normally set in the second positional
|
|
1468
|
+
* string parameter after the long option: "--port PORT".
|
|
1469
|
+
*
|
|
1470
|
+
* The absence of this entry indicates that the option is a
|
|
1471
|
+
* boolean toggle that is set to true when specified on the
|
|
1472
|
+
* command line.
|
|
1473
|
+
*
|
|
1474
|
+
* :missing Indicates that this option is required (not just an argument),
|
|
1475
|
+
* and provides the string to use as an error message if omitted.
|
|
1476
|
+
*
|
|
1477
|
+
* :desc A optional short description of this option.
|
|
1478
|
+
*
|
|
1479
|
+
* :default The default value of this option. If none is specified, the
|
|
1480
|
+
* resulting option map will not contain an entry for this
|
|
1481
|
+
* option unless set on the command line. Also see :default-fn
|
|
1482
|
+
* (below).
|
|
1483
|
+
*
|
|
1484
|
+
* This default is applied before any arguments are parsed so
|
|
1485
|
+
* this is a good way to seed values for :assoc-fn or :update-fn
|
|
1486
|
+
* as well as the simplest way to provide defaults.
|
|
1487
|
+
*
|
|
1488
|
+
* If you need to compute a default based on other command line
|
|
1489
|
+
* arguments, or you need to provide a default separate from the
|
|
1490
|
+
* seed for :assoc-fn or :update-fn, see :default-fn below.
|
|
1491
|
+
*
|
|
1492
|
+
* :default-desc An optional description of the default value. This should be
|
|
1493
|
+
* used when the string representation of the default value is
|
|
1494
|
+
* too ugly to be printed on the command line, or :default-fn
|
|
1495
|
+
* is used to compute the default.
|
|
1496
|
+
*
|
|
1497
|
+
* :default-fn A function to compute the default value of this option, given
|
|
1498
|
+
* the whole, parsed option map as its one argument. If no
|
|
1499
|
+
* function is specified, the resulting option map will not
|
|
1500
|
+
* contain an entry for this option unless set on the command
|
|
1501
|
+
* line. Also see :default (above).
|
|
1502
|
+
*
|
|
1503
|
+
* If both :default and :default-fn are provided, if the
|
|
1504
|
+
* argument is not provided on the command-line, :default-fn will
|
|
1505
|
+
* still be called (and can override :default).
|
|
1506
|
+
*
|
|
1507
|
+
* :parse-fn A function that receives the required option argument and
|
|
1508
|
+
* returns the option value.
|
|
1509
|
+
*
|
|
1510
|
+
* If this is a boolean option, parse-fn will receive the value
|
|
1511
|
+
* true. This may be used to invert the logic of this option:
|
|
1512
|
+
*
|
|
1513
|
+
* ["-q" "--quiet"
|
|
1514
|
+
* :id :verbose
|
|
1515
|
+
* :default true
|
|
1516
|
+
* :parse-fn not]
|
|
1517
|
+
*
|
|
1518
|
+
* :assoc-fn A function that receives the current option map, the current
|
|
1519
|
+
* option :id, and the current parsed option value, and returns
|
|
1520
|
+
* a new option map. The default is 'assoc'.
|
|
1521
|
+
*
|
|
1522
|
+
* For non-idempotent options, where you need to compute a option
|
|
1523
|
+
* value based on the current value and a new value from the
|
|
1524
|
+
* command line. If you only need the the current value, consider
|
|
1525
|
+
* :update-fn (below).
|
|
1526
|
+
*
|
|
1527
|
+
* You cannot specify both :assoc-fn and :update-fn for an
|
|
1528
|
+
* option.
|
|
1529
|
+
*
|
|
1530
|
+
* :update-fn Without :multi true:
|
|
1531
|
+
*
|
|
1532
|
+
* A function that receives just the existing parsed option value,
|
|
1533
|
+
* and returns a new option value, for each option :id present.
|
|
1534
|
+
* The default is 'identity'.
|
|
1535
|
+
*
|
|
1536
|
+
* This may be used to create non-idempotent options where you
|
|
1537
|
+
* only need the current value, like setting a verbosity level by
|
|
1538
|
+
* specifying an option multiple times. ("-vvv" -> 3)
|
|
1539
|
+
*
|
|
1540
|
+
* ["-v" "--verbose"
|
|
1541
|
+
* :default 0
|
|
1542
|
+
* :update-fn inc]
|
|
1543
|
+
*
|
|
1544
|
+
* :default is applied first. If you wish to omit the :default
|
|
1545
|
+
* option value, use fnil in your :update-fn as follows:
|
|
1546
|
+
*
|
|
1547
|
+
* ["-v" "--verbose"
|
|
1548
|
+
* :update-fn (fnil inc 0)]
|
|
1549
|
+
*
|
|
1550
|
+
* With :multi true:
|
|
1551
|
+
*
|
|
1552
|
+
* A function that receives both the existing parsed option value,
|
|
1553
|
+
* and the parsed option value from each instance of the option,
|
|
1554
|
+
* and returns a new option value, for each option :id present.
|
|
1555
|
+
* The :multi option is ignored if you do not specify :update-fn.
|
|
1556
|
+
*
|
|
1557
|
+
* For non-idempotent options, where you need to compute a option
|
|
1558
|
+
* value based on the current value and a new value from the
|
|
1559
|
+
* command line. This can sometimes be easier than use :assoc-fn.
|
|
1560
|
+
*
|
|
1561
|
+
* ["-f" "--file NAME"
|
|
1562
|
+
* :default []
|
|
1563
|
+
* :update-fn conj
|
|
1564
|
+
* :multi true]
|
|
1565
|
+
*
|
|
1566
|
+
* :default is applied first. If you wish to omit the :default
|
|
1567
|
+
* option value, use fnil in your :update-fn as follows:
|
|
1568
|
+
*
|
|
1569
|
+
* ["-f" "--file NAME"
|
|
1570
|
+
* :update-fn (fnil conj [])
|
|
1571
|
+
* :multi true]
|
|
1572
|
+
*
|
|
1573
|
+
* Regardless of :multi, you cannot specify both :assoc-fn
|
|
1574
|
+
* and :update-fn for an option.
|
|
1575
|
+
*
|
|
1576
|
+
* :multi true/false, applies only to options that use :update-fn.
|
|
1577
|
+
*
|
|
1578
|
+
* :validate A vector of [validate-fn validate-msg ...]. Multiple pairs
|
|
1579
|
+
* of validation functions and error messages may be provided.
|
|
1580
|
+
*
|
|
1581
|
+
* :validate-fn A vector of functions that receives the parsed option value
|
|
1582
|
+
* and returns a falsy value or throws an exception when the
|
|
1583
|
+
* value is invalid. The validations are tried in the given
|
|
1584
|
+
* order.
|
|
1585
|
+
*
|
|
1586
|
+
* :validate-msg A vector of error messages corresponding to :validate-fn
|
|
1587
|
+
* that will be added to the :errors vector on validation
|
|
1588
|
+
* failure. Can be plain strings, or functions to be applied
|
|
1589
|
+
* to the (invalid) option argument to produce a string.
|
|
1590
|
+
*
|
|
1591
|
+
* :post-validation true/false. By default, validation is performed after
|
|
1592
|
+
* parsing an option, prior to assoc/default/update processing.
|
|
1593
|
+
* Specifying true here will cause the validation to be
|
|
1594
|
+
* performed after assoc/default/update processing, instead.
|
|
1595
|
+
*
|
|
1596
|
+
* parse-opts returns a map with four entries:
|
|
1597
|
+
*
|
|
1598
|
+
* {:options The options map, keyed by :id, mapped to the parsed value
|
|
1599
|
+
* :arguments A vector of unprocessed arguments
|
|
1600
|
+
* :summary A string containing a minimal options summary
|
|
1601
|
+
* :errors A possible vector of error message strings generated during
|
|
1602
|
+
* parsing; nil when no errors exist}
|
|
1603
|
+
*
|
|
1604
|
+
* A few function options may be specified to influence the behavior of
|
|
1605
|
+
* parse-opts:
|
|
1606
|
+
*
|
|
1607
|
+
* :in-order Stop option processing at the first unknown argument. Useful
|
|
1608
|
+
* for building programs with subcommands that have their own
|
|
1609
|
+
* option specs.
|
|
1610
|
+
*
|
|
1611
|
+
* :no-defaults Only include option values specified in arguments and do not
|
|
1612
|
+
* include any default values in the resulting options map.
|
|
1613
|
+
* Useful for parsing options from multiple sources; i.e. from a
|
|
1614
|
+
* config file and from the command line.
|
|
1615
|
+
*
|
|
1616
|
+
* :strict Parse required arguments strictly: if a required argument value
|
|
1617
|
+
* matches any other option, it is considered to be missing (and
|
|
1618
|
+
* you have a parse error).
|
|
1619
|
+
*
|
|
1620
|
+
* :summary-fn A function that receives the sequence of compiled option specs
|
|
1621
|
+
* (documented at #'clojure.tools.cli/compile-option-specs), and
|
|
1622
|
+
* returns a custom option summary string.
|
|
1623
|
+
*
|
|
1624
|
+
*/
|
|
1625
|
+
clojure.tools.cli.parse_opts = (function clojure$tools$cli$parse_opts(var_args){
|
|
1626
|
+
var args__5775__auto__ = [];
|
|
1627
|
+
var len__5769__auto___21963 = arguments.length;
|
|
1628
|
+
var i__5770__auto___21964 = (0);
|
|
1629
|
+
while(true){
|
|
1630
|
+
if((i__5770__auto___21964 < len__5769__auto___21963)){
|
|
1631
|
+
args__5775__auto__.push((arguments[i__5770__auto___21964]));
|
|
1632
|
+
|
|
1633
|
+
var G__21965 = (i__5770__auto___21964 + (1));
|
|
1634
|
+
i__5770__auto___21964 = G__21965;
|
|
1635
|
+
continue;
|
|
1636
|
+
} else {
|
|
1637
|
+
}
|
|
1638
|
+
break;
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
var argseq__5776__auto__ = ((((2) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((2)),(0),null)):null);
|
|
1642
|
+
return clojure.tools.cli.parse_opts.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5776__auto__);
|
|
1643
|
+
});
|
|
1644
|
+
|
|
1645
|
+
(clojure.tools.cli.parse_opts.cljs$core$IFn$_invoke$arity$variadic = (function (args,option_specs,options){
|
|
1646
|
+
var map__21799 = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,options);
|
|
1647
|
+
var map__21799__$1 = cljs.core.__destructure_map(map__21799);
|
|
1648
|
+
var in_order = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21799__$1,new cljs.core.Keyword(null,"in-order","in-order",-1605651796));
|
|
1649
|
+
var no_defaults = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21799__$1,new cljs.core.Keyword(null,"no-defaults","no-defaults",-1025033878));
|
|
1650
|
+
var strict = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21799__$1,new cljs.core.Keyword(null,"strict","strict",-665564191));
|
|
1651
|
+
var summary_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21799__$1,new cljs.core.Keyword(null,"summary-fn","summary-fn",-2130107959));
|
|
1652
|
+
var specs = clojure.tools.cli.compile_option_specs(option_specs);
|
|
1653
|
+
var req = clojure.tools.cli.required_arguments(specs);
|
|
1654
|
+
var vec__21800 = clojure.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic(req,args,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"in-order","in-order",-1605651796),in_order], 0));
|
|
1655
|
+
var tokens = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21800,(0),null);
|
|
1656
|
+
var rest_args = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21800,(1),null);
|
|
1657
|
+
var vec__21803 = clojure.tools.cli.parse_option_tokens.cljs$core$IFn$_invoke$arity$variadic(specs,tokens,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"no-defaults","no-defaults",-1025033878),no_defaults,new cljs.core.Keyword(null,"strict","strict",-665564191),strict], 0));
|
|
1658
|
+
var opts = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21803,(0),null);
|
|
1659
|
+
var errors = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21803,(1),null);
|
|
1660
|
+
return new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"options","options",99638489),opts,new cljs.core.Keyword(null,"arguments","arguments",-1182834456),rest_args,new cljs.core.Keyword(null,"summary","summary",380847952),(function (){var fexpr__21806 = (function (){var or__5045__auto__ = summary_fn;
|
|
1661
|
+
if(cljs.core.truth_(or__5045__auto__)){
|
|
1662
|
+
return or__5045__auto__;
|
|
1663
|
+
} else {
|
|
1664
|
+
return clojure.tools.cli.summarize;
|
|
1665
|
+
}
|
|
1666
|
+
})();
|
|
1667
|
+
return (fexpr__21806.cljs$core$IFn$_invoke$arity$1 ? fexpr__21806.cljs$core$IFn$_invoke$arity$1(specs) : fexpr__21806.call(null,specs));
|
|
1668
|
+
})(),new cljs.core.Keyword(null,"errors","errors",-908790718),((cljs.core.seq(errors))?errors:null)], null);
|
|
1669
|
+
}));
|
|
1670
|
+
|
|
1671
|
+
(clojure.tools.cli.parse_opts.cljs$lang$maxFixedArity = (2));
|
|
1672
|
+
|
|
1673
|
+
/** @this {Function} */
|
|
1674
|
+
(clojure.tools.cli.parse_opts.cljs$lang$applyTo = (function (seq21794){
|
|
1675
|
+
var G__21795 = cljs.core.first(seq21794);
|
|
1676
|
+
var seq21794__$1 = cljs.core.next(seq21794);
|
|
1677
|
+
var G__21796 = cljs.core.first(seq21794__$1);
|
|
1678
|
+
var seq21794__$2 = cljs.core.next(seq21794__$1);
|
|
1679
|
+
var self__5754__auto__ = this;
|
|
1680
|
+
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21795,G__21796,seq21794__$2);
|
|
1681
|
+
}));
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
//# sourceMappingURL=clojure.tools.cli.js.map
|