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.
Files changed (125) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +77 -0
  3. package/bin/cli.js +3 -0
  4. package/lib/cli.js +120 -0
  5. package/lib/cljs-runtime/cljs.core.js +38285 -0
  6. package/lib/cljs-runtime/cljs.core.js.map +1 -0
  7. package/lib/cljs-runtime/cljs_env.js +1268 -0
  8. package/lib/cljs-runtime/clojure.string.js +477 -0
  9. package/lib/cljs-runtime/clojure.string.js.map +1 -0
  10. package/lib/cljs-runtime/clojure.tools.cli.js +1684 -0
  11. package/lib/cljs-runtime/clojure.tools.cli.js.map +1 -0
  12. package/lib/cljs-runtime/clojure.walk.js +131 -0
  13. package/lib/cljs-runtime/clojure.walk.js.map +1 -0
  14. package/lib/cljs-runtime/goog.array.array.js +658 -0
  15. package/lib/cljs-runtime/goog.array.array.js.map +9 -0
  16. package/lib/cljs-runtime/goog.asserts.asserts.js +131 -0
  17. package/lib/cljs-runtime/goog.asserts.asserts.js.map +9 -0
  18. package/lib/cljs-runtime/goog.asserts.dom.js +87 -0
  19. package/lib/cljs-runtime/goog.asserts.dom.js.map +9 -0
  20. package/lib/cljs-runtime/goog.base.js +1242 -0
  21. package/lib/cljs-runtime/goog.base.js.map +9 -0
  22. package/lib/cljs-runtime/goog.collections.maps.js +79 -0
  23. package/lib/cljs-runtime/goog.collections.maps.js.map +9 -0
  24. package/lib/cljs-runtime/goog.debug.error.js +29 -0
  25. package/lib/cljs-runtime/goog.debug.error.js.map +9 -0
  26. package/lib/cljs-runtime/goog.dom.asserts.js +39 -0
  27. package/lib/cljs-runtime/goog.dom.asserts.js.map +9 -0
  28. package/lib/cljs-runtime/goog.dom.element.js +67 -0
  29. package/lib/cljs-runtime/goog.dom.element.js.map +9 -0
  30. package/lib/cljs-runtime/goog.dom.htmlelement.js +6 -0
  31. package/lib/cljs-runtime/goog.dom.htmlelement.js.map +9 -0
  32. package/lib/cljs-runtime/goog.dom.nodetype.js +5 -0
  33. package/lib/cljs-runtime/goog.dom.nodetype.js.map +9 -0
  34. package/lib/cljs-runtime/goog.dom.safe.js +265 -0
  35. package/lib/cljs-runtime/goog.dom.safe.js.map +9 -0
  36. package/lib/cljs-runtime/goog.dom.tagname.js +146 -0
  37. package/lib/cljs-runtime/goog.dom.tagname.js.map +9 -0
  38. package/lib/cljs-runtime/goog.dom.tags.js +9 -0
  39. package/lib/cljs-runtime/goog.dom.tags.js.map +9 -0
  40. package/lib/cljs-runtime/goog.flags.flags.js +11 -0
  41. package/lib/cljs-runtime/goog.flags.flags.js.map +9 -0
  42. package/lib/cljs-runtime/goog.fs.blob.js +37 -0
  43. package/lib/cljs-runtime/goog.fs.blob.js.map +9 -0
  44. package/lib/cljs-runtime/goog.fs.url.js +36 -0
  45. package/lib/cljs-runtime/goog.fs.url.js.map +9 -0
  46. package/lib/cljs-runtime/goog.functions.functions.js +210 -0
  47. package/lib/cljs-runtime/goog.functions.functions.js.map +9 -0
  48. package/lib/cljs-runtime/goog.html.safehtml.js +306 -0
  49. package/lib/cljs-runtime/goog.html.safehtml.js.map +9 -0
  50. package/lib/cljs-runtime/goog.html.safescript.js +61 -0
  51. package/lib/cljs-runtime/goog.html.safescript.js.map +9 -0
  52. package/lib/cljs-runtime/goog.html.safestyle.js +170 -0
  53. package/lib/cljs-runtime/goog.html.safestyle.js.map +9 -0
  54. package/lib/cljs-runtime/goog.html.safestylesheet.js +93 -0
  55. package/lib/cljs-runtime/goog.html.safestylesheet.js.map +9 -0
  56. package/lib/cljs-runtime/goog.html.safeurl.js +225 -0
  57. package/lib/cljs-runtime/goog.html.safeurl.js.map +9 -0
  58. package/lib/cljs-runtime/goog.html.trustedresourceurl.js +113 -0
  59. package/lib/cljs-runtime/goog.html.trustedresourceurl.js.map +9 -0
  60. package/lib/cljs-runtime/goog.html.trustedtypes.js +15 -0
  61. package/lib/cljs-runtime/goog.html.trustedtypes.js.map +9 -0
  62. package/lib/cljs-runtime/goog.html.uncheckedconversions.js +43 -0
  63. package/lib/cljs-runtime/goog.html.uncheckedconversions.js.map +9 -0
  64. package/lib/cljs-runtime/goog.labs.useragent.browser.js +332 -0
  65. package/lib/cljs-runtime/goog.labs.useragent.browser.js.map +9 -0
  66. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +13 -0
  67. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +9 -0
  68. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +72 -0
  69. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +9 -0
  70. package/lib/cljs-runtime/goog.labs.useragent.useragent.js +20 -0
  71. package/lib/cljs-runtime/goog.labs.useragent.useragent.js.map +9 -0
  72. package/lib/cljs-runtime/goog.labs.useragent.util.js +77 -0
  73. package/lib/cljs-runtime/goog.labs.useragent.util.js.map +9 -0
  74. package/lib/cljs-runtime/goog.math.integer.js +425 -0
  75. package/lib/cljs-runtime/goog.math.integer.js.map +9 -0
  76. package/lib/cljs-runtime/goog.math.long.js +427 -0
  77. package/lib/cljs-runtime/goog.math.long.js.map +9 -0
  78. package/lib/cljs-runtime/goog.object.object.js +283 -0
  79. package/lib/cljs-runtime/goog.object.object.js.map +9 -0
  80. package/lib/cljs-runtime/goog.reflect.reflect.js +31 -0
  81. package/lib/cljs-runtime/goog.reflect.reflect.js.map +9 -0
  82. package/lib/cljs-runtime/goog.string.const.js +33 -0
  83. package/lib/cljs-runtime/goog.string.const.js.map +9 -0
  84. package/lib/cljs-runtime/goog.string.internal.js +118 -0
  85. package/lib/cljs-runtime/goog.string.internal.js.map +9 -0
  86. package/lib/cljs-runtime/goog.string.string.js +458 -0
  87. package/lib/cljs-runtime/goog.string.string.js.map +9 -0
  88. package/lib/cljs-runtime/goog.string.stringbuffer.js +31 -0
  89. package/lib/cljs-runtime/goog.string.stringbuffer.js.map +9 -0
  90. package/lib/cljs-runtime/goog.string.stringformat.js +74 -0
  91. package/lib/cljs-runtime/goog.string.stringformat.js.map +9 -0
  92. package/lib/cljs-runtime/goog.string.typedstring.js +8 -0
  93. package/lib/cljs-runtime/goog.string.typedstring.js.map +9 -0
  94. package/lib/cljs-runtime/goog.structs.structs.js +188 -0
  95. package/lib/cljs-runtime/goog.structs.structs.js.map +9 -0
  96. package/lib/cljs-runtime/goog.uri.uri.js +616 -0
  97. package/lib/cljs-runtime/goog.uri.uri.js.map +9 -0
  98. package/lib/cljs-runtime/goog.uri.utils.js +320 -0
  99. package/lib/cljs-runtime/goog.uri.utils.js.map +9 -0
  100. package/lib/cljs-runtime/longdown.cli.js +128 -0
  101. package/lib/cljs-runtime/longdown.cli.js.map +1 -0
  102. package/lib/cljs-runtime/longdown.lib.js +122 -0
  103. package/lib/cljs-runtime/longdown.lib.js.map +1 -0
  104. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_from_markdown.js +5 -0
  105. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_from_markdown.js.map +9 -0
  106. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.js +5 -0
  107. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.js.map +9 -0
  108. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown.js +5 -0
  109. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown.js.map +9 -0
  110. package/lib/cljs-runtime/shadow.esm.esm_import$node_fs.js +5 -0
  111. package/lib/cljs-runtime/shadow.esm.esm_import$node_fs.js.map +9 -0
  112. package/lib/cljs-runtime/shadow.esm.esm_import$node_path.js +5 -0
  113. package/lib/cljs-runtime/shadow.esm.esm_import$node_path.js.map +9 -0
  114. package/lib/cljs-runtime/shadow.esm.esm_import$remark_parse.js +5 -0
  115. package/lib/cljs-runtime/shadow.esm.esm_import$remark_parse.js.map +9 -0
  116. package/lib/cljs-runtime/shadow.esm.esm_import$remark_stringify.js +5 -0
  117. package/lib/cljs-runtime/shadow.esm.esm_import$remark_stringify.js.map +9 -0
  118. package/lib/cljs-runtime/shadow.esm.esm_import$unified.js +5 -0
  119. package/lib/cljs-runtime/shadow.esm.esm_import$unified.js.map +9 -0
  120. package/lib/cljs-runtime/shadow.module.cli.append.js +1 -0
  121. package/lib/cljs-runtime/shadow.module.cli.prepend.js +17 -0
  122. package/lib/cljs-runtime/shadow.module.lib.append.js +1 -0
  123. package/lib/cljs-runtime/shadow.module.lib.prepend.js +2 -0
  124. package/lib/lib.js +8 -0
  125. 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