longdown
Version:
Convert longform markdown files to outline format used by Logseq
986 lines (941 loc) • 88.5 kB
JavaScript
import "./cljs_env.js";
goog.provide('clojure.tools.cli');
/**
* Reduce arguments sequence into [opt-type opt ?optarg?] vectors and a vector
* of remaining arguments. Returns as [option-tokens remaining-args].
*
* Expands clumped short options like "-abc" into:
* [[:short-opt "-a"] [:short-opt "-b"] [:short-opt "-c"]]
*
* If "-b" were in the set of options that require arguments, "-abc" would
* then be interpreted as: [[:short-opt "-a"] [:short-opt "-b" "c"]]
*
* Long options with `=` are always parsed as option + optarg, even if nothing
* follows the `=` sign.
*
* If the :in-order flag is true, the first non-option, non-optarg argument
* stops options processing. This is useful for handling subcommand options.
*/
clojure.tools.cli.tokenize_args = (function clojure$tools$cli$tokenize_args(var_args){
var args__5775__auto__ = [];
var len__5769__auto___21833 = arguments.length;
var i__5770__auto___21834 = (0);
while(true){
if((i__5770__auto___21834 < len__5769__auto___21833)){
args__5775__auto__.push((arguments[i__5770__auto___21834]));
var G__21835 = (i__5770__auto___21834 + (1));
i__5770__auto___21834 = G__21835;
continue;
} else {
}
break;
}
var argseq__5776__auto__ = ((((2) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((2)),(0),null)):null);
return clojure.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5776__auto__);
});
(clojure.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic = (function (required_set,args,options){
var map__21490 = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,options);
var map__21490__$1 = cljs.core.__destructure_map(map__21490);
var in_order = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21490__$1,new cljs.core.Keyword(null,"in-order","in-order",-1605651796));
var opts = cljs.core.PersistentVector.EMPTY;
var argv = cljs.core.PersistentVector.EMPTY;
var G__21497 = args;
var vec__21498 = G__21497;
var seq__21499 = cljs.core.seq(vec__21498);
var first__21500 = cljs.core.first(seq__21499);
var seq__21499__$1 = cljs.core.next(seq__21499);
var car = first__21500;
var cdr = seq__21499__$1;
var opts__$1 = opts;
var argv__$1 = argv;
var G__21497__$1 = G__21497;
while(true){
var opts__$2 = opts__$1;
var argv__$2 = argv__$1;
var vec__21557 = G__21497__$1;
var seq__21558 = cljs.core.seq(vec__21557);
var first__21559 = cljs.core.first(seq__21558);
var seq__21558__$1 = cljs.core.next(seq__21558);
var car__$1 = first__21559;
var cdr__$1 = seq__21558__$1;
if(cljs.core.truth_(car__$1)){
var pred__21560 = cljs.core.re_seq;
var expr__21561 = car__$1;
if(cljs.core.truth_((function (){var G__21563 = /^--$/;
var G__21564 = expr__21561;
return (pred__21560.cljs$core$IFn$_invoke$arity$2 ? pred__21560.cljs$core$IFn$_invoke$arity$2(G__21563,G__21564) : pred__21560.call(null,G__21563,G__21564));
})())){
var G__21838 = opts__$2;
var G__21839 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(argv__$2,cdr__$1);
var G__21840 = cljs.core.PersistentVector.EMPTY;
opts__$1 = G__21838;
argv__$1 = G__21839;
G__21497__$1 = G__21840;
continue;
} else {
if(cljs.core.truth_((function (){var G__21565 = /^--\S+=/;
var G__21566 = expr__21561;
return (pred__21560.cljs$core$IFn$_invoke$arity$2 ? pred__21560.cljs$core$IFn$_invoke$arity$2(G__21565,G__21566) : pred__21560.call(null,G__21565,G__21566));
})())){
var G__21841 = 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))));
var G__21842 = argv__$2;
var G__21843 = cdr__$1;
opts__$1 = G__21841;
argv__$1 = G__21842;
G__21497__$1 = G__21843;
continue;
} else {
if(cljs.core.truth_((function (){var G__21568 = /^--/;
var G__21569 = expr__21561;
return (pred__21560.cljs$core$IFn$_invoke$arity$2 ? pred__21560.cljs$core$IFn$_invoke$arity$2(G__21568,G__21569) : pred__21560.call(null,G__21568,G__21569));
})())){
var vec__21571 = ((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));
var optarg = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21571,(0),null);
var cdr__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21571,(1),null);
var G__21845 = 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)));
var G__21846 = argv__$2;
var G__21847 = cdr__$2;
opts__$1 = G__21845;
argv__$1 = G__21846;
G__21497__$1 = G__21847;
continue;
} else {
if(cljs.core.truth_((function (){var G__21574 = /^-./;
var G__21575 = expr__21561;
return (pred__21560.cljs$core$IFn$_invoke$arity$2 ? pred__21560.cljs$core$IFn$_invoke$arity$2(G__21574,G__21575) : pred__21560.call(null,G__21574,G__21575));
})())){
var vec__21576 = (function (){var os = cljs.core.PersistentVector.EMPTY;
var G__21582 = cljs.core.rest(car__$1);
var vec__21583 = G__21582;
var seq__21584 = cljs.core.seq(vec__21583);
var first__21585 = cljs.core.first(seq__21584);
var seq__21584__$1 = cljs.core.next(seq__21584);
var c = first__21585;
var cs = seq__21584__$1;
var os__$1 = os;
var G__21582__$1 = G__21582;
while(true){
var os__$2 = os__$1;
var vec__21589 = G__21582__$1;
var seq__21590 = cljs.core.seq(vec__21589);
var first__21591 = cljs.core.first(seq__21590);
var seq__21590__$1 = cljs.core.next(seq__21590);
var c__$1 = first__21591;
var cs__$1 = seq__21590__$1;
var o = ["-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(c__$1)].join('');
if(cljs.core.contains_QMARK_(required_set,o)){
if(cljs.core.seq(cs__$1)){
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);
} else {
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);
}
} else {
if(cljs.core.seq(cs__$1)){
var G__21849 = 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));
var G__21850 = cs__$1;
os__$1 = G__21849;
G__21582__$1 = G__21850;
continue;
} else {
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);
}
}
break;
}
})();
var os = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21576,(0),null);
var cdr__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21576,(1),null);
var G__21851 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(opts__$2,os);
var G__21852 = argv__$2;
var G__21853 = cdr__$2;
opts__$1 = G__21851;
argv__$1 = G__21852;
G__21497__$1 = G__21853;
continue;
} else {
if(cljs.core.truth_(in_order)){
var G__21854 = opts__$2;
var G__21855 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(argv__$2,cljs.core.cons(car__$1,cdr__$1));
var G__21856 = cljs.core.PersistentVector.EMPTY;
opts__$1 = G__21854;
argv__$1 = G__21855;
G__21497__$1 = G__21856;
continue;
} else {
var G__21858 = opts__$2;
var G__21859 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(argv__$2,car__$1);
var G__21860 = cdr__$1;
opts__$1 = G__21858;
argv__$1 = G__21859;
G__21497__$1 = G__21860;
continue;
}
}
}
}
}
} else {
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [opts__$2,argv__$2], null);
}
break;
}
}));
(clojure.tools.cli.tokenize_args.cljs$lang$maxFixedArity = (2));
/** @this {Function} */
(clojure.tools.cli.tokenize_args.cljs$lang$applyTo = (function (seq21482){
var G__21483 = cljs.core.first(seq21482);
var seq21482__$1 = cljs.core.next(seq21482);
var G__21484 = cljs.core.first(seq21482__$1);
var seq21482__$2 = cljs.core.next(seq21482__$1);
var self__5754__auto__ = this;
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21483,G__21484,seq21482__$2);
}));
/**
* Given a sequence of column widths, return a string suitable for use in
* format to print a sequences of strings in those columns.
*/
clojure.tools.cli.make_format = (function clojure$tools$cli$make_format(lens){
return clojure.string.join.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21592_SHARP_){
return [" %",(((p1__21592_SHARP_ === (0)))?null:["-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__21592_SHARP_)].join('')),"s"].join('');
}),lens));
});
clojure.tools.cli.build_doc = (function clojure$tools$cli$build_doc(p__21593){
var map__21594 = p__21593;
var map__21594__$1 = cljs.core.__destructure_map(map__21594);
var switches = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21594__$1,new cljs.core.Keyword(null,"switches","switches",2013040888));
var docs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21594__$1,new cljs.core.Keyword(null,"docs","docs",-1974280502));
var default$ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21594__$1,new cljs.core.Keyword(null,"default","default",-1987822328));
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$);
if(cljs.core.truth_(or__5045__auto__)){
return or__5045__auto__;
} else {
return "";
}
})(),(function (){var or__5045__auto__ = docs;
if(cljs.core.truth_(or__5045__auto__)){
return or__5045__auto__;
} else {
return "";
}
})()], null);
});
clojure.tools.cli.format = (function clojure$tools$cli$format(var_args){
var args__5775__auto__ = [];
var len__5769__auto___21863 = arguments.length;
var i__5770__auto___21864 = (0);
while(true){
if((i__5770__auto___21864 < len__5769__auto___21863)){
args__5775__auto__.push((arguments[i__5770__auto___21864]));
var G__21865 = (i__5770__auto___21864 + (1));
i__5770__auto___21864 = G__21865;
continue;
} else {
}
break;
}
var argseq__5776__auto__ = ((((1) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((1)),(0),null)):null);
return clojure.tools.cli.format.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5776__auto__);
});
(clojure.tools.cli.format.cljs$core$IFn$_invoke$arity$variadic = (function (fmt,args){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(goog.string.format,fmt,args);
}));
(clojure.tools.cli.format.cljs$lang$maxFixedArity = (1));
/** @this {Function} */
(clojure.tools.cli.format.cljs$lang$applyTo = (function (seq21595){
var G__21596 = cljs.core.first(seq21595);
var seq21595__$1 = cljs.core.next(seq21595);
var self__5754__auto__ = this;
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21596,seq21595__$1);
}));
clojure.tools.cli.banner_for = (function clojure$tools$cli$banner_for(desc,specs){
if(cljs.core.truth_(desc)){
cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([desc], 0));
cljs.core.println();
} else {
}
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));
var max_cols = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21599_SHARP_){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,p1__21599_SHARP_);
}),cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.map,(function() {
var G__21873__delegate = function (c){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,c);
};
var G__21873 = function (var_args){
var c = null;
if (arguments.length > 0) {
var G__21874__i = 0, G__21874__a = new Array(arguments.length - 0);
while (G__21874__i < G__21874__a.length) {G__21874__a[G__21874__i] = arguments[G__21874__i + 0]; ++G__21874__i;}
c = new cljs.core.IndexedSeq(G__21874__a,0,null);
}
return G__21873__delegate.call(this,c);};
G__21873.cljs$lang$maxFixedArity = 0;
G__21873.cljs$lang$applyTo = (function (arglist__21875){
var c = cljs.core.seq(arglist__21875);
return G__21873__delegate(c);
});
G__21873.cljs$core$IFn$_invoke$arity$variadic = G__21873__delegate;
return G__21873;
})()
,(function (){var iter__5523__auto__ = (function clojure$tools$cli$banner_for_$_iter__21601(s__21602){
return (new cljs.core.LazySeq(null,(function (){
var s__21602__$1 = s__21602;
while(true){
var temp__5825__auto__ = cljs.core.seq(s__21602__$1);
if(temp__5825__auto__){
var s__21602__$2 = temp__5825__auto__;
if(cljs.core.chunked_seq_QMARK_(s__21602__$2)){
var c__5521__auto__ = cljs.core.chunk_first(s__21602__$2);
var size__5522__auto__ = cljs.core.count(c__5521__auto__);
var b__21606 = cljs.core.chunk_buffer(size__5522__auto__);
if((function (){var i__21605 = (0);
while(true){
if((i__21605 < size__5522__auto__)){
var d = cljs.core._nth(c__5521__auto__,i__21605);
cljs.core.chunk_append(b__21606,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,d));
var G__21877 = (i__21605 + (1));
i__21605 = G__21877;
continue;
} else {
return true;
}
break;
}
})()){
return cljs.core.chunk_cons(cljs.core.chunk(b__21606),clojure$tools$cli$banner_for_$_iter__21601(cljs.core.chunk_rest(s__21602__$2)));
} else {
return cljs.core.chunk_cons(cljs.core.chunk(b__21606),null);
}
} else {
var d = cljs.core.first(s__21602__$2);
return cljs.core.cons(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.count,d),clojure$tools$cli$banner_for_$_iter__21601(cljs.core.rest(s__21602__$2)));
}
} else {
return null;
}
break;
}
}),null,null));
});
return iter__5523__auto__(docs);
})()));
var vs = (function (){var iter__5523__auto__ = (function clojure$tools$cli$banner_for_$_iter__21609(s__21610){
return (new cljs.core.LazySeq(null,(function (){
var s__21610__$1 = s__21610;
while(true){
var temp__5825__auto__ = cljs.core.seq(s__21610__$1);
if(temp__5825__auto__){
var s__21610__$2 = temp__5825__auto__;
if(cljs.core.chunked_seq_QMARK_(s__21610__$2)){
var c__5521__auto__ = cljs.core.chunk_first(s__21610__$2);
var size__5522__auto__ = cljs.core.count(c__5521__auto__);
var b__21612 = cljs.core.chunk_buffer(size__5522__auto__);
if((function (){var i__21611 = (0);
while(true){
if((i__21611 < size__5522__auto__)){
var d = cljs.core._nth(c__5521__auto__,i__21611);
cljs.core.chunk_append(b__21612,cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (i__21611,d,c__5521__auto__,size__5522__auto__,b__21612,s__21610__$2,temp__5825__auto__,docs,max_cols){
return (function() {
var G__21881__delegate = function (x){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,x);
};
var G__21881 = function (var_args){
var x = null;
if (arguments.length > 0) {
var G__21882__i = 0, G__21882__a = new Array(arguments.length - 0);
while (G__21882__i < G__21882__a.length) {G__21882__a[G__21882__i] = arguments[G__21882__i + 0]; ++G__21882__i;}
x = new cljs.core.IndexedSeq(G__21882__a,0,null);
}
return G__21881__delegate.call(this,x);};
G__21881.cljs$lang$maxFixedArity = 0;
G__21881.cljs$lang$applyTo = (function (arglist__21883){
var x = cljs.core.seq(arglist__21883);
return G__21881__delegate(x);
});
G__21881.cljs$core$IFn$_invoke$arity$variadic = G__21881__delegate;
return G__21881;
})()
;})(i__21611,d,c__5521__auto__,size__5522__auto__,b__21612,s__21610__$2,temp__5825__auto__,docs,max_cols))
,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([max_cols,d], 0)));
var G__21884 = (i__21611 + (1));
i__21611 = G__21884;
continue;
} else {
return true;
}
break;
}
})()){
return cljs.core.chunk_cons(cljs.core.chunk(b__21612),clojure$tools$cli$banner_for_$_iter__21609(cljs.core.chunk_rest(s__21610__$2)));
} else {
return cljs.core.chunk_cons(cljs.core.chunk(b__21612),null);
}
} else {
var d = cljs.core.first(s__21610__$2);
return cljs.core.cons(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(((function (d,s__21610__$2,temp__5825__auto__,docs,max_cols){
return (function() {
var G__21885__delegate = function (x){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,x);
};
var G__21885 = function (var_args){
var x = null;
if (arguments.length > 0) {
var G__21886__i = 0, G__21886__a = new Array(arguments.length - 0);
while (G__21886__i < G__21886__a.length) {G__21886__a[G__21886__i] = arguments[G__21886__i + 0]; ++G__21886__i;}
x = new cljs.core.IndexedSeq(G__21886__a,0,null);
}
return G__21885__delegate.call(this,x);};
G__21885.cljs$lang$maxFixedArity = 0;
G__21885.cljs$lang$applyTo = (function (arglist__21887){
var x = cljs.core.seq(arglist__21887);
return G__21885__delegate(x);
});
G__21885.cljs$core$IFn$_invoke$arity$variadic = G__21885__delegate;
return G__21885;
})()
;})(d,s__21610__$2,temp__5825__auto__,docs,max_cols))
,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([max_cols,d], 0)),clojure$tools$cli$banner_for_$_iter__21609(cljs.core.rest(s__21610__$2)));
}
} else {
return null;
}
break;
}
}),null,null));
});
return iter__5523__auto__(docs);
})();
var seq__21613 = cljs.core.seq(vs);
var chunk__21614 = null;
var count__21615 = (0);
var i__21616 = (0);
while(true){
if((i__21616 < count__21615)){
var v = chunk__21614.cljs$core$IIndexed$_nth$arity$2(null,i__21616);
var fmt_21889 = clojure.tools.cli.make_format(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),v));
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_21889,cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.rest(v)))], 0));
cljs.core.prn();
var G__21890 = seq__21613;
var G__21891 = chunk__21614;
var G__21892 = count__21615;
var G__21893 = (i__21616 + (1));
seq__21613 = G__21890;
chunk__21614 = G__21891;
count__21615 = G__21892;
i__21616 = G__21893;
continue;
} else {
var temp__5825__auto__ = cljs.core.seq(seq__21613);
if(temp__5825__auto__){
var seq__21613__$1 = temp__5825__auto__;
if(cljs.core.chunked_seq_QMARK_(seq__21613__$1)){
var c__5568__auto__ = cljs.core.chunk_first(seq__21613__$1);
var G__21894 = cljs.core.chunk_rest(seq__21613__$1);
var G__21895 = c__5568__auto__;
var G__21896 = cljs.core.count(c__5568__auto__);
var G__21897 = (0);
seq__21613 = G__21894;
chunk__21614 = G__21895;
count__21615 = G__21896;
i__21616 = G__21897;
continue;
} else {
var v = cljs.core.first(seq__21613__$1);
var fmt_21900 = clojure.tools.cli.make_format(cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),v));
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_21900,cljs.core.take_nth.cljs$core$IFn$_invoke$arity$2((2),cljs.core.rest(v)))], 0));
cljs.core.prn();
var G__21901 = cljs.core.next(seq__21613__$1);
var G__21902 = null;
var G__21903 = (0);
var G__21904 = (0);
seq__21613 = G__21901;
chunk__21614 = G__21902;
count__21615 = G__21903;
i__21616 = G__21904;
continue;
}
} else {
return null;
}
}
break;
}
});
clojure.tools.cli.name_for = (function clojure$tools$cli$name_for(k){
return clojure.string.replace(k,/^--no-|^--\[no-\]|^--|^-/,"");
});
clojure.tools.cli.flag_for = (function clojure$tools$cli$flag_for(v){
return (!(clojure.string.starts_with_QMARK_(v,"--no-")));
});
clojure.tools.cli.opt_QMARK_ = (function clojure$tools$cli$opt_QMARK_(x){
return clojure.string.starts_with_QMARK_(x,"-");
});
clojure.tools.cli.flag_QMARK_ = (function clojure$tools$cli$flag_QMARK_(x){
return clojure.string.starts_with_QMARK_(x,"--[no-]");
});
clojure.tools.cli.end_of_args_QMARK_ = (function clojure$tools$cli$end_of_args_QMARK_(x){
return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("--",x);
});
clojure.tools.cli.spec_for = (function clojure$tools$cli$spec_for(arg,specs){
return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (s){
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))));
return cljs.core.contains_QMARK_(switches,arg);
}),specs));
});
clojure.tools.cli.default_values_for = (function clojure$tools$cli$default_values_for(specs){
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,s){
if(cljs.core.contains_QMARK_(s,new cljs.core.Keyword(null,"default","default",-1987822328))){
var G__21618 = m;
var G__21619 = new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(s);
var G__21620 = new cljs.core.Keyword(null,"default","default",-1987822328).cljs$core$IFn$_invoke$arity$1(s);
var fexpr__21617 = new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603).cljs$core$IFn$_invoke$arity$1(s);
return (fexpr__21617.cljs$core$IFn$_invoke$arity$3 ? fexpr__21617.cljs$core$IFn$_invoke$arity$3(G__21618,G__21619,G__21620) : fexpr__21617.call(null,G__21618,G__21619,G__21620));
} else {
return m;
}
}),cljs.core.PersistentArrayMap.EMPTY,specs);
});
clojure.tools.cli.apply_specs = (function clojure$tools$cli$apply_specs(specs,args){
var options = clojure.tools.cli.default_values_for(specs);
var extra_args = cljs.core.PersistentVector.EMPTY;
var args__$1 = args;
while(true){
if(cljs.core.not(cljs.core.seq(args__$1))){
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [options,extra_args], null);
} else {
var opt = cljs.core.first(args__$1);
var spec = clojure.tools.cli.spec_for(opt,specs);
if(clojure.tools.cli.end_of_args_QMARK_(opt)){
var G__21907 = options;
var G__21908 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(extra_args,cljs.core.vec(cljs.core.rest(args__$1)));
var G__21909 = null;
options = G__21907;
extra_args = G__21908;
args__$1 = G__21909;
continue;
} else {
if(((clojure.tools.cli.opt_QMARK_(opt)) && ((spec == null)))){
throw (new Error(["'",cljs.core.str.cljs$core$IFn$_invoke$arity$1(opt),"' is not a valid argument"].join('')));
} else {
if(cljs.core.truth_((function (){var and__5043__auto__ = clojure.tools.cli.opt_QMARK_(opt);
if(and__5043__auto__){
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)));
} else {
return and__5043__auto__;
}
})())){
var G__21912 = (function (){var G__21632 = options;
var G__21633 = (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)));
var G__21634 = clojure.tools.cli.flag_for(opt);
var fexpr__21631 = (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)));
return (fexpr__21631.cljs$core$IFn$_invoke$arity$3 ? fexpr__21631.cljs$core$IFn$_invoke$arity$3(G__21632,G__21633,G__21634) : fexpr__21631.call(null,G__21632,G__21633,G__21634));
})();
var G__21913 = extra_args;
var G__21914 = cljs.core.rest(args__$1);
options = G__21912;
extra_args = G__21913;
args__$1 = G__21914;
continue;
} else {
if(clojure.tools.cli.opt_QMARK_(opt)){
var G__21915 = (function (){var G__21636 = options;
var G__21637 = (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)));
var G__21638 = (function (){var G__21640 = cljs.core.second(args__$1);
var fexpr__21639 = (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)));
return (fexpr__21639.cljs$core$IFn$_invoke$arity$1 ? fexpr__21639.cljs$core$IFn$_invoke$arity$1(G__21640) : fexpr__21639.call(null,G__21640));
})();
var fexpr__21635 = (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)));
return (fexpr__21635.cljs$core$IFn$_invoke$arity$3 ? fexpr__21635.cljs$core$IFn$_invoke$arity$3(G__21636,G__21637,G__21638) : fexpr__21635.call(null,G__21636,G__21637,G__21638));
})();
var G__21916 = extra_args;
var G__21917 = cljs.core.drop.cljs$core$IFn$_invoke$arity$2((2),args__$1);
options = G__21915;
extra_args = G__21916;
args__$1 = G__21917;
continue;
} else {
var G__21919 = options;
var G__21920 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(extra_args,cljs.core.first(args__$1));
var G__21921 = cljs.core.rest(args__$1);
options = G__21919;
extra_args = G__21920;
args__$1 = G__21921;
continue;
}
}
}
}
}
break;
}
});
clojure.tools.cli.switches_for = (function clojure$tools$cli$switches_for(switches,flag){
return cljs.core.flatten((function (){var iter__5523__auto__ = (function clojure$tools$cli$switches_for_$_iter__21642(s__21643){
return (new cljs.core.LazySeq(null,(function (){
var s__21643__$1 = s__21643;
while(true){
var temp__5825__auto__ = cljs.core.seq(s__21643__$1);
if(temp__5825__auto__){
var s__21643__$2 = temp__5825__auto__;
if(cljs.core.chunked_seq_QMARK_(s__21643__$2)){
var c__5521__auto__ = cljs.core.chunk_first(s__21643__$2);
var size__5522__auto__ = cljs.core.count(c__5521__auto__);
var b__21645 = cljs.core.chunk_buffer(size__5522__auto__);
if((function (){var i__21644 = (0);
while(true){
if((i__21644 < size__5522__auto__)){
var s = cljs.core._nth(c__5521__auto__,i__21644);
cljs.core.chunk_append(b__21645,(cljs.core.truth_((function (){var and__5043__auto__ = flag;
if(cljs.core.truth_(and__5043__auto__)){
return clojure.tools.cli.flag_QMARK_(s);
} else {
return and__5043__auto__;
}
})())?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;
if(cljs.core.truth_(and__5043__auto__)){
return clojure.string.starts_with_QMARK_(s,"--");
} else {
return and__5043__auto__;
}
})())?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)
)));
var G__21924 = (i__21644 + (1));
i__21644 = G__21924;
continue;
} else {
return true;
}
break;
}
})()){
return cljs.core.chunk_cons(cljs.core.chunk(b__21645),clojure$tools$cli$switches_for_$_iter__21642(cljs.core.chunk_rest(s__21643__$2)));
} else {
return cljs.core.chunk_cons(cljs.core.chunk(b__21645),null);
}
} else {
var s = cljs.core.first(s__21643__$2);
return cljs.core.cons((cljs.core.truth_((function (){var and__5043__auto__ = flag;
if(cljs.core.truth_(and__5043__auto__)){
return clojure.tools.cli.flag_QMARK_(s);
} else {
return and__5043__auto__;
}
})())?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;
if(cljs.core.truth_(and__5043__auto__)){
return clojure.string.starts_with_QMARK_(s,"--");
} else {
return and__5043__auto__;
}
})())?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)
)),clojure$tools$cli$switches_for_$_iter__21642(cljs.core.rest(s__21643__$2)));
}
} else {
return null;
}
break;
}
}),null,null));
});
return iter__5523__auto__(switches);
})());
});
clojure.tools.cli.generate_spec = (function clojure$tools$cli$generate_spec(raw_spec){
var vec__21647 = cljs.core.split_with((function (p1__21646_SHARP_){
return ((typeof p1__21646_SHARP_ === 'string') && (clojure.tools.cli.opt_QMARK_(p1__21646_SHARP_)));
}),raw_spec);
var switches = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21647,(0),null);
var raw_spec__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21647,(1),null);
var vec__21650 = cljs.core.split_with(cljs.core.string_QMARK_,raw_spec__$1);
var docs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21650,(0),null);
var raw_spec__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21650,(1),null);
var options = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,raw_spec__$2);
var aliases = cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.tools.cli.name_for,switches);
var flag = (function (){var or__5045__auto__ = clojure.tools.cli.flag_QMARK_(cljs.core.last(switches));
if(or__5045__auto__){
return or__5045__auto__;
} else {
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)));
}
})();
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));
});
/**
* Rewrite arguments sequence into a normalized form that is parsable by cli.
*/
clojure.tools.cli.normalize_args = (function clojure$tools$cli$normalize_args(specs,args){
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)));
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);
var rargs = cljs.core.drop.cljs$core$IFn$_invoke$arity$2(cljs.core.count(largs),args);
var vec__21653 = clojure.tools.cli.tokenize_args(required_opts,largs);
var opts = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21653,(0),null);
var largs__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21653,(1),null);
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));
});
/**
* THIS IS A LEGACY FUNCTION and may be deprecated in the future. Please use
* clojure.tools.cli/parse-opts in new applications.
*
* Parse the provided args using the given specs. Specs are vectors
* describing a command line argument. For example:
*
* ["-p" "--port" "Port to listen on" :default 3000 :parse-fn #(Integer/parseInt %)]
*
* First provide the switches (from least to most specific), then a doc
* string, and pairs of options.
*
* Valid options are :default, :parse-fn, and :flag. See
* https://github.com/clojure/tools.cli/wiki/Documentation-for-0.2.4 for more
* detailed examples.
*
* Returns a vector containing a map of the parsed arguments, a vector
* of extra arguments that did not match known switches, and a
* documentation banner to provide usage instructions.
*/
clojure.tools.cli.cli = (function clojure$tools$cli$cli(var_args){
var args__5775__auto__ = [];
var len__5769__auto___21944 = arguments.length;
var i__5770__auto___21947 = (0);
while(true){
if((i__5770__auto___21947 < len__5769__auto___21944)){
args__5775__auto__.push((arguments[i__5770__auto___21947]));
var G__21949 = (i__5770__auto___21947 + (1));
i__5770__auto___21947 = G__21949;
continue;
} else {
}
break;
}
var argseq__5776__auto__ = ((((1) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((1)),(0),null)):null);
return clojure.tools.cli.cli.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5776__auto__);
});
(clojure.tools.cli.cli.cljs$core$IFn$_invoke$arity$variadic = (function (args,specs){
var vec__21658 = ((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));
var desc = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21658,(0),null);
var specs__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21658,(1),null);
var specs__$2 = cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.tools.cli.generate_spec,specs__$1);
var args__$1 = clojure.tools.cli.normalize_args(specs__$2,args);
var vec__21661 = clojure.tools.cli.apply_specs(specs__$2,args__$1);
var options = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21661,(0),null);
var extra_args = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21661,(1),null);
var banner = (function (){var sb__5690__auto__ = (new goog.string.StringBuffer());
var _STAR_print_newline_STAR__orig_val__21664_21950 = cljs.core._STAR_print_newline_STAR_;
var _STAR_print_fn_STAR__orig_val__21665_21951 = cljs.core._STAR_print_fn_STAR_;
var _STAR_print_newline_STAR__temp_val__21666_21952 = true;
var _STAR_print_fn_STAR__temp_val__21667_21953 = (function (x__5691__auto__){
return sb__5690__auto__.append(x__5691__auto__);
});
(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__temp_val__21666_21952);
(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__temp_val__21667_21953);
try{clojure.tools.cli.banner_for(desc,specs__$2);
}finally {(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__orig_val__21665_21951);
(cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR__orig_val__21664_21950);
}
return cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__5690__auto__);
})();
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [options,extra_args,banner], null);
}));
(clojure.tools.cli.cli.cljs$lang$maxFixedArity = (1));
/** @this {Function} */
(clojure.tools.cli.cli.cljs$lang$applyTo = (function (seq21656){
var G__21657 = cljs.core.first(seq21656);
var seq21656__$1 = cljs.core.next(seq21656);
var self__5754__auto__ = this;
return self__5754__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21657,seq21656__$1);
}));
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);
/**
* Select only known spec entries from map and warn the user about unknown
* entries at development time.
*/
clojure.tools.cli.select_spec_keys = (function clojure$tools$cli$select_spec_keys(map){
if(cljs.core.truth_(cljs.core._STAR_assert_STAR_)){
var unknown_keys_21955 = cljs.core.keys(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,map,clojure.tools.cli.spec_keys));
if(cljs.core.seq(unknown_keys_21955)){
var msg_21956 = ["Warning: The following options to parse-opts are unrecognized: ",clojure.string.join.cljs$core$IFn$_invoke$arity$2(", ",unknown_keys_21955)].join('');
var _STAR_print_fn_STAR__orig_val__21668_21957 = cljs.core._STAR_print_fn_STAR_;
var _STAR_print_fn_STAR__temp_val__21669_21958 = cljs.core._STAR_print_err_fn_STAR_;
(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__temp_val__21669_21958);
try{cljs.core.println.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([msg_21956], 0));
}finally {(cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR__orig_val__21668_21957);
}} else {
}
} else {
}
return cljs.core.select_keys(map,clojure.tools.cli.spec_keys);
});
clojure.tools.cli.compile_spec = (function clojure$tools$cli$compile_spec(spec){
var sopt_lopt_desc = cljs.core.take_while.cljs$core$IFn$_invoke$arity$2((function (p1__21670_SHARP_){
return ((typeof p1__21670_SHARP_ === 'string') || ((p1__21670_SHARP_ == null)));
}),spec);
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));
var vec__21671 = sopt_lopt_desc;
var short_opt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21671,(0),null);
var long_opt = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21671,(1),null);
var desc = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21671,(2),null);
var long_opt__$1 = (function (){var or__5045__auto__ = long_opt;
if(cljs.core.truth_(or__5045__auto__)){
return or__5045__auto__;
} else {
return new cljs.core.Keyword(null,"long-opt","long-opt",-386094553).cljs$core$IFn$_invoke$arity$1(spec_map);
}
})();
var vec__21674 = (cljs.core.truth_(long_opt__$1)?cljs.core.rest(cljs.core.re_find(/^(--[^ =]+)(?:[ =](.*))?/,long_opt__$1)):null);
var long_opt__$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21674,(0),null);
var req = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21674,(1),null);
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);
var validate = new cljs.core.Keyword(null,"validate","validate",-201300827).cljs$core$IFn$_invoke$arity$1(spec_map);
var vec__21677 = ((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);
var validate_fn = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21677,(0),null);
var validate_msg = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21677,(1),null);
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));
});
clojure.tools.cli.distinct_QMARK__STAR_ = (function clojure$tools$cli$distinct_QMARK__STAR_(coll){
if(cljs.core.seq(coll)){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct_QMARK_,coll);
} else {
return true;
}
});
clojure.tools.cli.wrap_val = (function clojure$tools$cli$wrap_val(map,key){
if(cljs.core.contains_QMARK_(map,key)){
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__21680_SHARP_){
if((p1__21680_SHARP_ == null)){
return null;
} else {
if(cljs.core.coll_QMARK_(p1__21680_SHARP_)){
return p1__21680_SHARP_;
} else {
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [p1__21680_SHARP_], null);
}
}
}));
} else {
return map;
}
});
/**
* Map a sequence of option specification vectors to a sequence of:
*
* {:id Keyword ; :server
* :short-opt String ; "-s"
* :long-opt String ; "--server"
* :required String ; "HOSTNAME"
* :desc String ; "Remote server"
* :default Object ; #<Inet4Address example.com/93.184.216.119>
* :default-desc String ; "example.com"
* :default-fn IFn ; (constantly 0)
* :parse-fn IFn ; #(InetAddress/getByName %)
* :assoc-fn IFn ; assoc
* :update-fn IFn ; identity
* :validate-fn [IFn] ; [#(instance? Inet4Address %)
* ; #(not (.isMulticastAddress %)]
* :validate-msg [String] ; ["Must be an IPv4 host"
* ; "Must not be a multicast address"]
* ; can also be a function (of the invalid argument)
* :post-validation Boolean ; default false
* :missing String ; "server must be specified"
* }
*
* :id defaults to the keywordized name of long-opt without leading dashes, but
* may be overridden in the option spec.
*
* The option spec entry `:validate [fn msg ...]` desugars into the two vector
* entries :validate-fn and :validate-msg. Multiple pairs of validation
* functions and error messages may be provided.
*
* A :default(-fn) entry will not be included in the compiled spec unless
* specified. The :default is applied before options are parsed, the :default-fn
* is applied after options are parsed (only where an option was not specified,
* and is passed the whole options map as its single argument, so defaults can
* be computed from other options if needed).
*
* An option spec may also be passed as a map containing the entries above,
* in which case that subset of the map is transferred directly to the result
* vector.
*
* An assertion error is thrown if any :id values are unset, or if there exist
* any duplicate :id, :short-opt, or :long-opt values, or if both :assoc-fn and
* :update-fn are provided for any single option.
*/
clojure.tools.cli.compile_option_specs = (function clojure$tools$cli$compile_option_specs(option_specs){
var _PERCENT_ = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (spec){
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));
}),option_specs);
if(cljs.core.every_QMARK_(new cljs.core.Keyword(null,"id","id",-1388402092),_PERCENT_)){
} else {
throw (new Error("Assert failed: (every? :id %)"));
}
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_))))){
} else {
throw (new Error("Assert failed: (distinct?* (map :id (filter :default %)))"));
}
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_))))){
} else {
throw (new Error("Assert failed: (distinct?* (map :id (filter :default-fn %)))"));
}
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_))))){
} else {
throw (new Error("Assert failed: (distinct?* (remove nil? (map :short-opt %)))"));
}
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_))))){
} else {
throw (new Error("Assert failed: (distinct?* (remove nil? (map :long-opt %)))"));
}
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_))){
} else {
throw (new Error("Assert failed: (every? (comp not (partial every? identity)) (map (juxt :assoc-fn :update-fn) %))"));
}
return _PERCENT_;
});
clojure.tools.cli.default_option_map = (function clojure$tools$cli$default_option_map(specs,default_key){
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,s){
if(cljs.core.contains_QMARK_(s,default_key)){
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)));
} else {
return m;
}
}),cljs.core.PersistentArrayMap.EMPTY,specs);
});
/**
* Given specs, returns a map of spec id to error message if missing.
*/
clojure.tools.cli.missing_errors = (function clojure$tools$cli$missing_errors(specs){
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,s){
if(cljs.core.truth_(new cljs.core.Keyword(null,"missing","missing",362507769).cljs$core$IFn$_invoke$arity$1(s))){
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));
} else {
return m;
}
}),cljs.core.PersistentArrayMap.EMPTY,specs);
});
clojure.tools.cli.find_spec = (function clojure$tools$cli$find_spec(specs,opt_type,opt){
return cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (spec){
var temp__5825__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(spec,opt_type);
if(cljs.core.truth_(temp__5825__auto__)){
var spec_opt = temp__5825__auto__;
var flag_tail = cljs.core.second(cljs.core.re_find(/^--\[no-\](.*)/,spec_opt));
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]));
return cljs.core.contains_QMARK_(candidates,opt);
} else {
return null;
}
}),specs));
});
clojure.tools.cli.pr_join = (function clojure$tools$cli$pr_join(var_args){
var args__5775__auto__ = [];
var len__5769__auto___21962 = arguments.length;
var i__5770__auto___21963 = (0);
while(true){
if((i__5770__auto___21963 < len__5769__auto___21962)){
args__5775__auto__.push((arguments[i__5770__auto___21963]));
var G__21964 = (i__5770__auto___21963 + (1));
i__5770__auto___21963 = G__21964;
continue;
} else {
}
break;
}
var argseq__5776__auto__ = ((((0) < args__5775__auto__.length))?(new cljs.core.IndexedSeq(args__5775__auto__.slice((0)),(0),null)):null);
return clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(argseq__5776__auto__);
});
(clojure.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic = (function (xs){
return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$v