UNPKG

thisdotrob-calvin-cljs

Version:

a minimalistic build tool for clojurescript in clojurescript

930 lines (894 loc) 48.5 kB
// Compiled by ClojureScript 1.9.293 {:target :nodejs} goog.provide('cljs.tools.cli'); goog.require('cljs.core'); goog.require('clojure.string'); goog.require('goog.string.format'); goog.require('goog.string'); /** * 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. */ cljs.tools.cli.tokenize_args = (function cljs$tools$cli$tokenize_args(var_args){ var args__7658__auto__ = []; var len__7651__auto___21065 = arguments.length; var i__7652__auto___21066 = (0); while(true){ if((i__7652__auto___21066 < len__7651__auto___21065)){ args__7658__auto__.push((arguments[i__7652__auto___21066])); var G__21068 = (i__7652__auto___21066 + (1)); i__7652__auto___21066 = G__21068; continue; } else { } break; } var argseq__7659__auto__ = ((((2) < args__7658__auto__.length))?(new cljs.core.IndexedSeq(args__7658__auto__.slice((2)),(0),null)):null); return cljs.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__7659__auto__); }); cljs.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic = (function (required_set,args,options){ var map__21020 = cljs.core.apply.call(null,cljs.core.hash_map,options); var map__21020__$1 = ((((!((map__21020 == null)))?((((map__21020.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21020.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21020):map__21020); var in_order = cljs.core.get.call(null,map__21020__$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__21028 = args; var vec__21029 = G__21028; var seq__21030 = cljs.core.seq.call(null,vec__21029); var first__21031 = cljs.core.first.call(null,seq__21030); var seq__21030__$1 = cljs.core.next.call(null,seq__21030); var car = first__21031; var cdr = seq__21030__$1; var opts__$1 = opts; var argv__$1 = argv; var G__21028__$1 = G__21028; while(true){ var opts__$2 = opts__$1; var argv__$2 = argv__$1; var vec__21034 = G__21028__$1; var seq__21035 = cljs.core.seq.call(null,vec__21034); var first__21036 = cljs.core.first.call(null,seq__21035); var seq__21035__$1 = cljs.core.next.call(null,seq__21035); var car__$1 = first__21036; var cdr__$1 = seq__21035__$1; if(cljs.core.truth_(car__$1)){ var pred__21038 = cljs.core.re_seq; var expr__21039 = car__$1; if(cljs.core.truth_(pred__21038.call(null,/^--$/,expr__21039))){ var G__21082 = opts__$2; var G__21083 = cljs.core.into.call(null,argv__$2,cdr__$1); var G__21084 = cljs.core.PersistentVector.EMPTY; opts__$1 = G__21082; argv__$1 = G__21083; G__21028__$1 = G__21084; continue; } else { if(cljs.core.truth_(pred__21038.call(null,/^--\S+=/,expr__21039))){ var G__21085 = cljs.core.conj.call(null,opts__$2,cljs.core.into.call(null,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.call(null,car__$1,/=/,(2)))); var G__21086 = argv__$2; var G__21087 = cdr__$1; opts__$1 = G__21085; argv__$1 = G__21086; G__21028__$1 = G__21087; continue; } else { if(cljs.core.truth_(pred__21038.call(null,/^--/,expr__21039))){ var vec__21041 = ((cljs.core.contains_QMARK_.call(null,required_set,car__$1))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first.call(null,cdr__$1),cljs.core.rest.call(null,cdr__$1)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cdr__$1], null)); var optarg = cljs.core.nth.call(null,vec__21041,(0),null); var cdr__$2 = cljs.core.nth.call(null,vec__21041,(1),null); var G__21095 = cljs.core.conj.call(null,opts__$2,cljs.core.into.call(null,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__21096 = argv__$2; var G__21097 = cdr__$2; opts__$1 = G__21095; argv__$1 = G__21096; G__21028__$1 = G__21097; continue; } else { if(cljs.core.truth_(pred__21038.call(null,/^-./,expr__21039))){ var vec__21045 = (function (){var os = cljs.core.PersistentVector.EMPTY; var G__21051 = cljs.core.rest.call(null,car__$1); var vec__21052 = G__21051; var seq__21053 = cljs.core.seq.call(null,vec__21052); var first__21054 = cljs.core.first.call(null,seq__21053); var seq__21053__$1 = cljs.core.next.call(null,seq__21053); var c = first__21054; var cs = seq__21053__$1; var os__$1 = os; var G__21051__$1 = G__21051; while(true){ var os__$2 = os__$1; var vec__21056 = G__21051__$1; var seq__21057 = cljs.core.seq.call(null,vec__21056); var first__21058 = cljs.core.first.call(null,seq__21057); var seq__21057__$1 = cljs.core.next.call(null,seq__21057); var c__$1 = first__21058; var cs__$1 = seq__21057__$1; var o = [cljs.core.str("-"),cljs.core.str(c__$1)].join(''); if(cljs.core.contains_QMARK_.call(null,required_set,o)){ if(cljs.core.seq.call(null,cs__$1)){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.call(null,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.call(null,cs__$1)], null)),cdr__$1], null); } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.call(null,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.call(null,cdr__$1)], null)),cljs.core.rest.call(null,cdr__$1)], null); } } else { if(cljs.core.seq.call(null,cs__$1)){ var G__21106 = cljs.core.conj.call(null,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__21107 = cs__$1; os__$1 = G__21106; G__21051__$1 = G__21107; continue; } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.conj.call(null,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.call(null,vec__21045,(0),null); var cdr__$2 = cljs.core.nth.call(null,vec__21045,(1),null); var G__21111 = cljs.core.into.call(null,opts__$2,os); var G__21112 = argv__$2; var G__21113 = cdr__$2; opts__$1 = G__21111; argv__$1 = G__21112; G__21028__$1 = G__21113; continue; } else { if(cljs.core.truth_(in_order)){ var G__21115 = opts__$2; var G__21116 = cljs.core.into.call(null,argv__$2,cljs.core.cons.call(null,car__$1,cdr__$1)); var G__21117 = cljs.core.PersistentVector.EMPTY; opts__$1 = G__21115; argv__$1 = G__21116; G__21028__$1 = G__21117; continue; } else { var G__21120 = opts__$2; var G__21121 = cljs.core.conj.call(null,argv__$2,car__$1); var G__21122 = cdr__$1; opts__$1 = G__21120; argv__$1 = G__21121; G__21028__$1 = G__21122; continue; } } } } } } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [opts__$2,argv__$2], null); } break; } }); cljs.tools.cli.tokenize_args.cljs$lang$maxFixedArity = (2); cljs.tools.cli.tokenize_args.cljs$lang$applyTo = (function (seq21017){ var G__21018 = cljs.core.first.call(null,seq21017); var seq21017__$1 = cljs.core.next.call(null,seq21017); var G__21019 = cljs.core.first.call(null,seq21017__$1); var seq21017__$2 = cljs.core.next.call(null,seq21017__$1); return cljs.tools.cli.tokenize_args.cljs$core$IFn$_invoke$arity$variadic(G__21018,G__21019,seq21017__$2); }); cljs.tools.cli.spec_keys = new cljs.core.PersistentVector(null, 12, 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,"parse-fn","parse-fn",1818406345),new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603),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. */ cljs.tools.cli.select_spec_keys = (function cljs$tools$cli$select_spec_keys(map){ var unknown_keys_21128 = cljs.core.keys.call(null,cljs.core.apply.call(null,cljs.core.dissoc,map,cljs.tools.cli.spec_keys)); if(cljs.core.seq.call(null,unknown_keys_21128)){ cljs.core.println.call(null,[cljs.core.str("Warning: The following options to parse-opts are unrecognized: "),cljs.core.str(clojure.string.join.call(null,", ",unknown_keys_21128))].join('')); } else { } return cljs.core.select_keys.call(null,map,cljs.tools.cli.spec_keys); }); cljs.tools.cli.compile_spec = (function cljs$tools$cli$compile_spec(spec){ var sopt_lopt_desc = cljs.core.take_while.call(null,(function (p1__21136_SHARP_){ return (typeof p1__21136_SHARP_ === 'string') || ((p1__21136_SHARP_ == null)); }),spec); var spec_map = cljs.core.apply.call(null,cljs.core.hash_map,cljs.core.drop.call(null,cljs.core.count.call(null,sopt_lopt_desc),spec)); var vec__21153 = sopt_lopt_desc; var short_opt = cljs.core.nth.call(null,vec__21153,(0),null); var long_opt = cljs.core.nth.call(null,vec__21153,(1),null); var desc = cljs.core.nth.call(null,vec__21153,(2),null); var long_opt__$1 = (function (){var or__6543__auto__ = long_opt; if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return new cljs.core.Keyword(null,"long-opt","long-opt",-386094553).cljs$core$IFn$_invoke$arity$1(spec_map); } })(); var vec__21156 = (cljs.core.truth_(long_opt__$1)?cljs.core.rest.call(null,cljs.core.re_find.call(null,/^(--[^ =]+)(?:[ =](.*))?/,long_opt__$1)):null); var long_opt__$2 = cljs.core.nth.call(null,vec__21156,(0),null); var req = cljs.core.nth.call(null,vec__21156,(1),null); var id = (cljs.core.truth_(long_opt__$2)?cljs.core.keyword.call(null,cljs.core.subs.call(null,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__21159 = ((cljs.core.seq.call(null,validate))?cljs.core.apply.call(null,cljs.core.map,cljs.core.vector,cljs.core.partition.call(null,(2),(2),cljs.core.repeat.call(null,null),validate)):null); var validate_fn = cljs.core.nth.call(null,vec__21159,(0),null); var validate_msg = cljs.core.nth.call(null,vec__21159,(1),null); return cljs.core.merge.call(null,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),cljs.tools.cli.select_spec_keys.call(null,cljs.core.dissoc.call(null,spec_map,new cljs.core.Keyword(null,"validate","validate",-201300827)))); }); cljs.tools.cli.distinct_QMARK__STAR_ = (function cljs$tools$cli$distinct_QMARK__STAR_(coll){ if(cljs.core.seq.call(null,coll)){ return cljs.core.apply.call(null,cljs.core.distinct_QMARK_,coll); } else { return true; } }); cljs.tools.cli.wrap_val = (function cljs$tools$cli$wrap_val(map,key){ if(cljs.core.contains_QMARK_.call(null,map,key)){ return cljs.core.update_in.call(null,map,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [key], null),(function (p1__21206_SHARP_){ if((p1__21206_SHARP_ == null)){ return null; } else { if(cljs.core.coll_QMARK_.call(null,p1__21206_SHARP_)){ return p1__21206_SHARP_; } else { return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [p1__21206_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" * :parse-fn IFn ; #(InetAddress/getByName %) * :assoc-fn IFn ; assoc * :validate-fn [IFn] ; [#(instance? Inet4Address %) * ; #(not (.isMulticastAddress %)] * :validate-msg [String] ; ["Must be an IPv4 host" * ; "Must not be a multicast address"] * :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 entry will not be included in the compiled spec unless specified. * * 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. */ cljs.tools.cli.compile_option_specs = (function cljs$tools$cli$compile_option_specs(option_specs){ var _PERCENT_ = cljs.core.map.call(null,(function (spec){ return cljs.tools.cli.wrap_val.call(null,cljs.tools.cli.wrap_val.call(null,((cljs.core.map_QMARK_.call(null,spec))?cljs.tools.cli.select_spec_keys.call(null,spec):cljs.tools.cli.compile_spec.call(null,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_.call(null,cljs.core.comp.call(null,cljs.core.identity,new cljs.core.Keyword(null,"id","id",-1388402092)),_PERCENT_)){ } else { throw (new Error("Assert failed: (every? (comp identity :id) %)")); } if(cljs.core.truth_(cljs.tools.cli.distinct_QMARK__STAR_.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"id","id",-1388402092),cljs.core.filter.call(null,new cljs.core.Keyword(null,"default","default",-1987822328),_PERCENT_))))){ } else { throw (new Error("Assert failed: (distinct?* (map :id (filter :default %)))")); } if(cljs.core.truth_(cljs.tools.cli.distinct_QMARK__STAR_.call(null,cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,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_(cljs.tools.cli.distinct_QMARK__STAR_.call(null,cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),_PERCENT_))))){ } else { throw (new Error("Assert failed: (distinct?* (remove nil? (map :long-opt %)))")); } return _PERCENT_; }); cljs.tools.cli.default_option_map = (function cljs$tools$cli$default_option_map(specs){ return cljs.core.reduce.call(null,(function (m,s){ if(cljs.core.contains_QMARK_.call(null,s,new cljs.core.Keyword(null,"default","default",-1987822328))){ return cljs.core.assoc.call(null,m,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,"default","default",-1987822328).cljs$core$IFn$_invoke$arity$1(s)); } else { return m; } }),cljs.core.PersistentArrayMap.EMPTY,specs); }); /** * Given specs, returns a map of spec id to error message if missing. */ cljs.tools.cli.missing_errors = (function cljs$tools$cli$missing_errors(specs){ return cljs.core.reduce.call(null,(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.call(null,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); }); cljs.tools.cli.find_spec = (function cljs$tools$cli$find_spec(specs,opt_type,opt){ return cljs.core.first.call(null,cljs.core.filter.call(null,(function (p1__21322_SHARP_){ return cljs.core._EQ_.call(null,opt,opt_type.call(null,p1__21322_SHARP_)); }),specs)); }); cljs.tools.cli.pr_join = (function cljs$tools$cli$pr_join(var_args){ var args__7658__auto__ = []; var len__7651__auto___21328 = arguments.length; var i__7652__auto___21329 = (0); while(true){ if((i__7652__auto___21329 < len__7651__auto___21328)){ args__7658__auto__.push((arguments[i__7652__auto___21329])); var G__21332 = (i__7652__auto___21329 + (1)); i__7652__auto___21329 = G__21332; continue; } else { } break; } var argseq__7659__auto__ = ((((0) < args__7658__auto__.length))?(new cljs.core.IndexedSeq(args__7658__auto__.slice((0)),(0),null)):null); return cljs.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(argseq__7659__auto__); }); cljs.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic = (function (xs){ return cljs.core.pr_str.call(null,clojure.string.join.call(null," ",xs)); }); cljs.tools.cli.pr_join.cljs$lang$maxFixedArity = (0); cljs.tools.cli.pr_join.cljs$lang$applyTo = (function (seq21323){ return cljs.tools.cli.pr_join.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq21323)); }); cljs.tools.cli.missing_required_error = (function cljs$tools$cli$missing_required_error(opt,example_required){ return [cljs.core.str("Missing required argument for "),cljs.core.str(cljs.tools.cli.pr_join.call(null,opt,example_required))].join(''); }); cljs.tools.cli.parse_error = (function cljs$tools$cli$parse_error(opt,optarg,msg){ return [cljs.core.str("Error while parsing option "),cljs.core.str(cljs.tools.cli.pr_join.call(null,opt,optarg)),cljs.core.str(": "),cljs.core.str(msg)].join(''); }); cljs.tools.cli.validation_error = (function cljs$tools$cli$validation_error(opt,optarg,msg){ return [cljs.core.str("Failed to validate "),cljs.core.str(cljs.tools.cli.pr_join.call(null,opt,optarg)),cljs.core.str((cljs.core.truth_(msg)?[cljs.core.str(": "),cljs.core.str(msg)].join(''):""))].join(''); }); cljs.tools.cli.validate = (function cljs$tools$cli$validate(value,spec,opt,optarg){ var map__21395 = spec; var map__21395__$1 = ((((!((map__21395 == null)))?((((map__21395.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21395.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21395):map__21395); var validate_fn = cljs.core.get.call(null,map__21395__$1,new cljs.core.Keyword(null,"validate-fn","validate-fn",1430169944)); var validate_msg = cljs.core.get.call(null,map__21395__$1,new cljs.core.Keyword(null,"validate-msg","validate-msg",-1415932287)); var or__6543__auto__ = (function (){var G__21434 = validate_fn; var vec__21436 = G__21434; var seq__21437 = cljs.core.seq.call(null,vec__21436); var first__21438 = cljs.core.first.call(null,seq__21437); var seq__21437__$1 = cljs.core.next.call(null,seq__21437); var vfn = first__21438; var vfns = seq__21437__$1; var G__21435 = validate_msg; var vec__21439 = G__21435; var seq__21440 = cljs.core.seq.call(null,vec__21439); var first__21441 = cljs.core.first.call(null,seq__21440); var seq__21440__$1 = cljs.core.next.call(null,seq__21440); var msg = first__21441; var msgs = seq__21440__$1; var G__21434__$1 = G__21434; var G__21435__$1 = G__21435; while(true){ var vec__21442 = G__21434__$1; var seq__21443 = cljs.core.seq.call(null,vec__21442); var first__21444 = cljs.core.first.call(null,seq__21443); var seq__21443__$1 = cljs.core.next.call(null,seq__21443); var vfn__$1 = first__21444; var vfns__$1 = seq__21443__$1; var vec__21445 = G__21435__$1; var seq__21446 = cljs.core.seq.call(null,vec__21445); var first__21447 = cljs.core.first.call(null,seq__21446); var seq__21446__$1 = cljs.core.next.call(null,seq__21446); var msg__$1 = first__21447; var msgs__$1 = seq__21446__$1; if(cljs.core.truth_(vfn__$1)){ if(cljs.core.truth_((function (){try{return vfn__$1.call(null,value); }catch (e21451){if((e21451 instanceof Error)){ var e = e21451; return null; } else { throw e21451; } }})())){ var G__21464 = vfns__$1; var G__21465 = msgs__$1; G__21434__$1 = G__21464; G__21435__$1 = G__21465; continue; } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.tools.cli","error","cljs.tools.cli/error",1825406757),cljs.tools.cli.validation_error.call(null,opt,optarg,msg__$1)], null); } } else { return null; } break; } })(); if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [value,null], null); } }); cljs.tools.cli.parse_value = (function cljs$tools$cli$parse_value(value,spec,opt,optarg){ var map__21472 = spec; var map__21472__$1 = ((((!((map__21472 == null)))?((((map__21472.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21472.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21472):map__21472); var parse_fn = cljs.core.get.call(null,map__21472__$1,new cljs.core.Keyword(null,"parse-fn","parse-fn",1818406345)); var vec__21473 = (cljs.core.truth_(parse_fn)?(function (){try{return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [parse_fn.call(null,value),null], null); }catch (e21479){if((e21479 instanceof Error)){ var e = e21479; return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,cljs.tools.cli.parse_error.call(null,opt,optarg,[cljs.core.str(e)].join(''))], null); } else { throw e21479; } }})():new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [value,null], null)); var value__$1 = cljs.core.nth.call(null,vec__21473,(0),null); var error = cljs.core.nth.call(null,vec__21473,(1),null); if(cljs.core.truth_(error)){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.tools.cli","error","cljs.tools.cli/error",1825406757),error], null); } else { return cljs.tools.cli.validate.call(null,value__$1,spec,opt,optarg); } }); cljs.tools.cli.parse_optarg = (function cljs$tools$cli$parse_optarg(spec,opt,optarg){ var map__21488 = spec; var map__21488__$1 = ((((!((map__21488 == null)))?((((map__21488.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21488.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21488):map__21488); var required = cljs.core.get.call(null,map__21488__$1,new cljs.core.Keyword(null,"required","required",1807647006)); if(cljs.core.truth_((function (){var and__6531__auto__ = required; if(cljs.core.truth_(and__6531__auto__)){ return (optarg == null); } else { return and__6531__auto__; } })())){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.tools.cli","error","cljs.tools.cli/error",1825406757),cljs.tools.cli.missing_required_error.call(null,opt,required)], null); } else { return cljs.tools.cli.parse_value.call(null,(cljs.core.truth_(required)?optarg:true),spec,opt,optarg); } }); /** * Reduce sequence of [opt-type opt ?optarg?] tokens into a map of * {option-id value} merged over the default values in the option * specifications. * * If the :no-defaults flag is true, only options specified in the tokens are * included in the option-map. * * Unknown options, missing options, missing required arguments, option * argument parsing exceptions, and validation failures are collected into * a vector of error message strings. * * If the :strict flag is true, required arguments that match other options * are treated as missing, instead of a literal value beginning with - or --. * * Returns [option-map error-messages-vector]. */ cljs.tools.cli.parse_option_tokens = (function cljs$tools$cli$parse_option_tokens(var_args){ var args__7658__auto__ = []; var len__7651__auto___21536 = arguments.length; var i__7652__auto___21537 = (0); while(true){ if((i__7652__auto___21537 < len__7651__auto___21536)){ args__7658__auto__.push((arguments[i__7652__auto___21537])); var G__21538 = (i__7652__auto___21537 + (1)); i__7652__auto___21537 = G__21538; continue; } else { } break; } var argseq__7659__auto__ = ((((2) < args__7658__auto__.length))?(new cljs.core.IndexedSeq(args__7658__auto__.slice((2)),(0),null)):null); return cljs.tools.cli.parse_option_tokens.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__7659__auto__); }); cljs.tools.cli.parse_option_tokens.cljs$core$IFn$_invoke$arity$variadic = (function (specs,tokens,options){ var map__21511 = cljs.core.apply.call(null,cljs.core.hash_map,options); var map__21511__$1 = ((((!((map__21511 == null)))?((((map__21511.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21511.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21511):map__21511); var no_defaults = cljs.core.get.call(null,map__21511__$1,new cljs.core.Keyword(null,"no-defaults","no-defaults",-1025033878)); var strict = cljs.core.get.call(null,map__21511__$1,new cljs.core.Keyword(null,"strict","strict",-665564191)); var defaults = cljs.tools.cli.default_option_map.call(null,specs); var requireds = cljs.tools.cli.missing_errors.call(null,specs); return ((function (map__21511,map__21511__$1,no_defaults,strict,defaults,requireds){ return (function (p1__21501_SHARP_){ var vec__21513 = p1__21501_SHARP_; var m = cljs.core.nth.call(null,vec__21513,(0),null); var ids = cljs.core.nth.call(null,vec__21513,(1),null); var errors = cljs.core.nth.call(null,vec__21513,(2),null); if(cljs.core.truth_(no_defaults)){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.select_keys.call(null,m,ids),errors], null); } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,errors], null); } });})(map__21511,map__21511__$1,no_defaults,strict,defaults,requireds)) .call(null,((function (map__21511,map__21511__$1,no_defaults,strict,defaults,requireds){ return (function (p1__21500_SHARP_){ return cljs.core.reduce.call(null,((function (map__21511,map__21511__$1,no_defaults,strict,defaults,requireds){ return (function (p__21516,p__21517){ var vec__21518 = p__21516; var m = cljs.core.nth.call(null,vec__21518,(0),null); var ids = cljs.core.nth.call(null,vec__21518,(1),null); var errors = cljs.core.nth.call(null,vec__21518,(2),null); var vec__21521 = p__21517; var id = cljs.core.nth.call(null,vec__21521,(0),null); var error = cljs.core.nth.call(null,vec__21521,(1),null); if(cljs.core.contains_QMARK_.call(null,m,id)){ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,errors], null); } else { return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.call(null,errors,error)], null); } });})(map__21511,map__21511__$1,no_defaults,strict,defaults,requireds)) ,p1__21500_SHARP_,requireds); });})(map__21511,map__21511__$1,no_defaults,strict,defaults,requireds)) .call(null,cljs.core.reduce.call(null,((function (map__21511,map__21511__$1,no_defaults,strict,defaults,requireds){ return (function (p__21524,p__21525){ var vec__21526 = p__21524; var m = cljs.core.nth.call(null,vec__21526,(0),null); var ids = cljs.core.nth.call(null,vec__21526,(1),null); var errors = cljs.core.nth.call(null,vec__21526,(2),null); var vec__21529 = p__21525; var opt_type = cljs.core.nth.call(null,vec__21529,(0),null); var opt = cljs.core.nth.call(null,vec__21529,(1),null); var optarg = cljs.core.nth.call(null,vec__21529,(2),null); var temp__4655__auto__ = cljs.tools.cli.find_spec.call(null,specs,opt_type,opt); if(cljs.core.truth_(temp__4655__auto__)){ var spec = temp__4655__auto__; var vec__21532 = cljs.tools.cli.parse_optarg.call(null,spec,opt,optarg); var value = cljs.core.nth.call(null,vec__21532,(0),null); var error = cljs.core.nth.call(null,vec__21532,(1),null); var id = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(spec); if(!(cljs.core._EQ_.call(null,value,new cljs.core.Keyword("cljs.tools.cli","error","cljs.tools.cli/error",1825406757)))){ var temp__4655__auto____$1 = (function (){var and__6531__auto__ = strict; if(cljs.core.truth_(and__6531__auto__)){ var or__6543__auto__ = cljs.tools.cli.find_spec.call(null,specs,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699),optarg); if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return cljs.tools.cli.find_spec.call(null,specs,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553),optarg); } } else { return and__6531__auto__; } })(); if(cljs.core.truth_(temp__4655__auto____$1)){ var matched_spec = temp__4655__auto____$1; return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.call(null,errors,cljs.tools.cli.missing_required_error.call(null,opt,new cljs.core.Keyword(null,"required","required",1807647006).cljs$core$IFn$_invoke$arity$1(spec)))], null); } else { return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"assoc-fn","assoc-fn",418597603).cljs$core$IFn$_invoke$arity$2(spec,cljs.core.assoc).call(null,m,id,value),cljs.core.conj.call(null,ids,id),errors], null); } } else { return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.call(null,errors,error)], null); } } else { return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [m,ids,cljs.core.conj.call(null,errors,[cljs.core.str("Unknown option: "),cljs.core.str(cljs.core.pr_str.call(null,opt))].join(''))], null); } });})(map__21511,map__21511__$1,no_defaults,strict,defaults,requireds)) ,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [defaults,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentVector.EMPTY], null),tokens))); }); cljs.tools.cli.parse_option_tokens.cljs$lang$maxFixedArity = (2); cljs.tools.cli.parse_option_tokens.cljs$lang$applyTo = (function (seq21502){ var G__21503 = cljs.core.first.call(null,seq21502); var seq21502__$1 = cljs.core.next.call(null,seq21502); var G__21504 = cljs.core.first.call(null,seq21502__$1); var seq21502__$2 = cljs.core.next.call(null,seq21502__$1); return cljs.tools.cli.parse_option_tokens.cljs$core$IFn$_invoke$arity$variadic(G__21503,G__21504,seq21502__$2); }); /** * Given a single compiled option spec, turn it into a formatted string, * optionally with its default values if requested. */ cljs.tools.cli.make_summary_part = (function cljs$tools$cli$make_summary_part(show_defaults_QMARK_,spec){ var map__21570 = spec; var map__21570__$1 = ((((!((map__21570 == null)))?((((map__21570.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21570.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21570):map__21570); var short_opt = cljs.core.get.call(null,map__21570__$1,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699)); var long_opt = cljs.core.get.call(null,map__21570__$1,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553)); var required = cljs.core.get.call(null,map__21570__$1,new cljs.core.Keyword(null,"required","required",1807647006)); var default$ = cljs.core.get.call(null,map__21570__$1,new cljs.core.Keyword(null,"default","default",-1987822328)); var default_desc = cljs.core.get.call(null,map__21570__$1,new cljs.core.Keyword(null,"default-desc","default-desc",324577013)); var desc = cljs.core.get.call(null,map__21570__$1,new cljs.core.Keyword(null,"desc","desc",2093485764)); var opt = (cljs.core.truth_((function (){var and__6531__auto__ = short_opt; if(cljs.core.truth_(and__6531__auto__)){ return long_opt; } else { return and__6531__auto__; } })())?[cljs.core.str(short_opt),cljs.core.str(", "),cljs.core.str(long_opt)].join(''):(cljs.core.truth_(long_opt)?[cljs.core.str(" "),cljs.core.str(long_opt)].join(''):(cljs.core.truth_(short_opt)?short_opt:null))); var vec__21571 = (cljs.core.truth_(required)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.str(opt),cljs.core.str(" "),cljs.core.str(required)].join(''),(function (){var or__6543__auto__ = default_desc; if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return [cljs.core.str(default$)].join(''); } })()], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [opt,""], null)); var opt__$1 = cljs.core.nth.call(null,vec__21571,(0),null); var dd = cljs.core.nth.call(null,vec__21571,(1),null); if(cljs.core.truth_(show_defaults_QMARK_)){ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [opt__$1,dd,(function (){var or__6543__auto__ = desc; if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return ""; } })()], null); } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [opt__$1,(function (){var or__6543__auto__ = desc; if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return ""; } })()], null); } }); /** * Format a sequence of summary parts into columns. lens is a sequence of * lengths to use for parts. There are two sequences of lengths if we are * not displaying defaults. There are three sequences of lengths if we * are showing defaults. */ cljs.tools.cli.format_lines = (function cljs$tools$cli$format_lines(lens,parts){ var fmt = (function (){var G__21581 = cljs.core.count.call(null,lens); switch (G__21581) { case (2): return " %%-%ds %%-%ds"; break; case (3): return " %%-%ds %%-%ds %%-%ds"; break; default: throw (new Error([cljs.core.str("No matching clause: "),cljs.core.str(cljs.core.count.call(null,lens))].join(''))); } })(); var fmt__$1 = cljs.core.apply.call(null,goog.string.format,fmt,lens); return cljs.core.map.call(null,((function (fmt,fmt__$1){ return (function (p1__21578_SHARP_){ return clojure.string.trimr.call(null,cljs.core.apply.call(null,goog.string.format,fmt__$1,p1__21578_SHARP_)); });})(fmt,fmt__$1)) ,parts); }); cljs.tools.cli.required_arguments = (function cljs$tools$cli$required_arguments(specs){ return cljs.core.reduce.call(null,(function (s,p__21591){ var map__21592 = p__21591; var map__21592__$1 = ((((!((map__21592 == null)))?((((map__21592.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21592.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21592):map__21592); var required = cljs.core.get.call(null,map__21592__$1,new cljs.core.Keyword(null,"required","required",1807647006)); var short_opt = cljs.core.get.call(null,map__21592__$1,new cljs.core.Keyword(null,"short-opt","short-opt",-384995699)); var long_opt = cljs.core.get.call(null,map__21592__$1,new cljs.core.Keyword(null,"long-opt","long-opt",-386094553)); if(cljs.core.truth_(required)){ return cljs.core.into.call(null,s,cljs.core.remove.call(null,cljs.core.nil_QMARK_,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [short_opt,long_opt], null))); } else { return s; } }),cljs.core.PersistentHashSet.EMPTY,specs); }); /** * Reduce options specs into a options summary for printing at a terminal. * Note that the specs argument should be the compiled version. That effectively * means that you shouldn't call summarize directly. When you call parse-opts * you get back a :summary key which is the result of calling summarize (or * your user-supplied :summary-fn option) on the compiled option specs. */ cljs.tools.cli.summarize = (function cljs$tools$cli$summarize(specs){ if(cljs.core.seq.call(null,specs)){ var show_defaults_QMARK_ = cljs.core.some.call(null,(function (p1__21601_SHARP_){ var and__6531__auto__ = new cljs.core.Keyword(null,"required","required",1807647006).cljs$core$IFn$_invoke$arity$1(p1__21601_SHARP_); if(cljs.core.truth_(and__6531__auto__)){ return cljs.core.contains_QMARK_.call(null,p1__21601_SHARP_,new cljs.core.Keyword(null,"default","default",-1987822328)); } else { return and__6531__auto__; } }),specs); var parts = cljs.core.map.call(null,cljs.core.partial.call(null,cljs.tools.cli.make_summary_part,show_defaults_QMARK_),specs); var lens = cljs.core.apply.call(null,cljs.core.map,((function (show_defaults_QMARK_,parts){ return (function() { var G__21616__delegate = function (cols){ return cljs.core.apply.call(null,cljs.core.max,cljs.core.map.call(null,cljs.core.count,cols)); }; var G__21616 = function (var_args){ var cols = null; if (arguments.length > 0) { var G__21617__i = 0, G__21617__a = new Array(arguments.length - 0); while (G__21617__i < G__21617__a.length) {G__21617__a[G__21617__i] = arguments[G__21617__i + 0]; ++G__21617__i;} cols = new cljs.core.IndexedSeq(G__21617__a,0); } return G__21616__delegate.call(this,cols);}; G__21616.cljs$lang$maxFixedArity = 0; G__21616.cljs$lang$applyTo = (function (arglist__21618){ var cols = cljs.core.seq(arglist__21618); return G__21616__delegate(cols); }); G__21616.cljs$core$IFn$_invoke$arity$variadic = G__21616__delegate; return G__21616; })() ;})(show_defaults_QMARK_,parts)) ,parts); var lines = cljs.tools.cli.format_lines.call(null,lens,parts); return clojure.string.join.call(null,"\n",lines); } else { return ""; } }); /** * Extract the map of default options from a sequence of option vectors. */ cljs.tools.cli.get_default_options = (function cljs$tools$cli$get_default_options(option_specs){ return cljs.tools.cli.default_option_map.call(null,cljs.tools.cli.compile_option_specs.call(null,option_specs)); }); /** * Parse arguments sequence according to given option specifications and the * GNU Program Argument Syntax Conventions: * * https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html * * Option specifications are a sequence of vectors with the following format: * * [short-opt long-opt-with-required-description description * :property value] * * The first three string parameters in an option spec are positional and * optional, and may be nil in order to specify a later parameter. * * By default, options are toggles that default to nil, but the second string * parameter may be used to specify that an option requires an argument. * * e.g. ["-p" "--port PORT"] specifies that --port requires an argument, * of which PORT is a short description. * * The :property value pairs are optional and take precedence over the * positional string arguments. The valid properties are: * * :id The key for this option in the resulting option map. This * is normally set to the keywordized name of the long option * without the leading dashes. * * Multiple option entries can share the same :id in order to * transform a value in different ways, but only one of these * option entries may contain a :default entry. * * This option is mandatory. * * :short-opt The short format for this option, normally set by the first * positional string parameter: e.g. "-p". Must be unique. * * :long-opt The long format for this option, normally set by the second * positional string parameter; e.g. "--port". Must be unique. * * :required A description of the required argument for this option if * one is required; normally set in the second positional * string parameter after the long option: "--port PORT". * * The absence of this entry indicates that the option is a * boolean toggle that is set to true when specified on the * command line. * * :desc A optional short description of this option. * * :default The default value of this option. If none is specified, the * resulting option map will not contain an entry for this * option unless set on the command line. * * :default-desc An optional description of the default value. This should be * used when the string representation of the default value is * too ugly to be printed on the command line. * * :parse-fn A function that receives the required option argument and * returns the option value. * * If this is a boolean option, parse-fn will receive the value * true. This may be used to invert the logic of this option: * * ["-q" "--quiet" * :id :verbose * :default true * :parse-fn not] * * :assoc-fn A function that receives the current option map, the current * option :id, and the current parsed option value, and returns * a new option map. * * This may be used to create non-idempotent options, like * setting a verbosity level by specifying an option multiple * times. ("-vvv" -> 3) * * ["-v" "--verbose" * :default 0 * :assoc-fn (fn [m k _] (update-in m [k] inc))] * * :validate A vector of [validate-fn validate-msg ...]. Multiple pairs * of validation functions and error messages may be provided. * * :validate-fn A vector of functions that receives the parsed option value * and returns a falsy value or throws an exception when the * value is invalid. The validations are tried in the given * order. * * :validate-msg A vector of error messages corresponding to :validate-fn * that will be added to the :errors vector on validation * failure. * * parse-opts returns a map with four entries: * * {:options The options map, keyed by :id, mapped to the parsed value * :arguments A vector of unprocessed arguments * :summary A string containing a minimal options summary * :errors A possible vector of error message strings generated during * parsing; nil when no errors exist} * * A few function options may be specified to influence the behavior of * parse-opts: * * :in-order Stop option processing at the first unknown argument. Useful * for building programs with subcommands that have their own * option specs. * * :no-defaults Only include option values specified in arguments and do not * include any default values in the resulting options map. * Useful for parsing options from multiple sources; i.e. from a * config file and from the command line. * * :strict Parse required arguments strictly: if a required argument value * matches any other option, it is considered to be missing (and * you have a parse error). * * :summary-fn A function that receives the sequence of compiled option specs * (documented at #'clojure.tools.cli/compile-option-specs), and * returns a custom option summary string. * */ cljs.tools.cli.parse_opts = (function cljs$tools$cli$parse_opts(var_args){ var args__7658__auto__ = []; var len__7651__auto___21660 = arguments.length; var i__7652__auto___21661 = (0); while(true){ if((i__7652__auto___21661 < len__7651__auto___21660)){ args__7658__auto__.push((arguments[i__7652__auto___21661])); var G__21662 = (i__7652__auto___21661 + (1)); i__7652__auto___21661 = G__21662; continue; } else { } break; } var argseq__7659__auto__ = ((((2) < args__7658__auto__.length))?(new cljs.core.IndexedSeq(args__7658__auto__.slice((2)),(0),null)):null); return cljs.tools.cli.parse_opts.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__7659__auto__); }); cljs.tools.cli.parse_opts.cljs$core$IFn$_invoke$arity$variadic = (function (args,option_specs,options){ var map__21634 = cljs.core.apply.call(null,cljs.core.hash_map,options); var map__21634__$1 = ((((!((map__21634 == null)))?((((map__21634.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21634.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21634):map__21634); var in_order = cljs.core.get.call(null,map__21634__$1,new cljs.core.Keyword(null,"in-order","in-order",-1605651796)); var no_defaults = cljs.core.get.call(null,map__21634__$1,new cljs.core.Keyword(null,"no-defaults","no-defaults",-1025033878)); var strict = cljs.core.get.call(null,map__21634__$1,new cljs.core.Keyword(null,"strict","strict",-665564191)); var summary_fn = cljs.core.get.call(null,map__21634__$1,new cljs.core.Keyword(null,"summary-fn","summary-fn",-2130107959)); var specs = cljs.tools.cli.compile_option_specs.call(null,option_specs); var req = cljs.tools.cli.required_arguments.call(null,specs); var vec__21635 = cljs.tools.cli.tokenize_args.call(null,req,args,new cljs.core.Keyword(null,"in-order","in-order",-1605651796),in_order); var tokens = cljs.core.nth.call(null,vec__21635,(0),null); var rest_args = cljs.core.nth.call(null,vec__21635,(1),null); var vec__21638 = cljs.tools.cli.parse_option_tokens.call(null,specs,tokens,new cljs.core.Keyword(null,"no-defaults","no-defaults",-1025033878),no_defaults,new cljs.core.Keyword(null,"strict","strict",-665564191),strict); var opts = cljs.core.nth.call(null,vec__21638,(0),null); var errors = cljs.core.nth.call(null,vec__21638,(1),null); 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 or__6543__auto__ = summary_fn; if(cljs.core.truth_(or__6543__auto__)){ return or__6543__auto__; } else { return cljs.tools.cli.summarize; } })().call(null,specs),new cljs.core.Keyword(null,"errors","errors",-908790718),((cljs.core.seq.call(null,errors))?errors:null)], null); }); cljs.tools.cli.parse_opts.cljs$lang$maxFixedArity = (2); cljs.tools.cli.parse_opts.cljs$lang$applyTo = (function (seq21622){ var G__21623 = cljs.core.first.call(null,seq21622); var seq21622__$1 = cljs.core.next.call(null,seq21622); var G__21624 = cljs.core.first.call(null,seq21622__$1); var seq21622__$2 = cljs.core.next.call(null,seq21622__$1); return cljs.tools.cli.parse_opts.cljs$core$IFn$_invoke$arity$variadic(G__21623,G__21624,seq21622__$2); });