11< html >
22 < head >
33 < meta http-equiv ="Content-Type " content ="text/html; charset=utf-8 " />
4- < title > clojure.tools.cli - tools.cli 1.0.195 -SNAPSHOT API documentation</ title >
4+ < title > clojure.tools.cli - tools.cli 1.0.220 -SNAPSHOT API documentation</ title >
55 < link rel ="icon " href ="static/favicon.png " />
66 < link rel ="shortcut icon " href ="static/favicon.png " />
77 < link rel ="stylesheet " href ="static/clojure.css " type ="text/css " media ="all " />
@@ -25,7 +25,7 @@ <h1><a href="index.html" id="page-header" title="page header title">tools.cli AP
2525 < div id ="leftcolumn "> < div style ="text-align: center; "> </ div >
2626< div class ="menu ">
2727 < div class ="WikiCustomNav WikiElement wiki ">
28- < span class ="toc-header "> < span id ="project-name "> tools.cli</ span > < span id ="version "> 1.0.195 -SNAPSHOT</ span > API</ span > < br />
28+ < span class ="toc-header "> < span id ="project-name "> tools.cli</ span > < span id ="version "> 1.0.220 -SNAPSHOT</ span > API</ span > < br />
2929 < ul >
3030 < li > < a href ="index.html " class ="wiki_link "> Overview</ a > </ li >
3131 < li > < a href ="api-index.html " class ="wiki_link "> API Index</ a > </ li >
@@ -79,7 +79,7 @@ <h1 class="nopad">Table of Contents</h1>
7979</ div >
8080</ div >
8181 < div id ="content-tag "> < h1 id ="overview "> API for < span id ="clojure.tools.cli "> clojure.tools.cli</ span >
82- - < span id ="header-project "> tools.cli</ span > < span id ="header-version "> 1.0.195 -SNAPSHOT</ span > < span id ="header-status-block "> (< span id ="header-status "> in development</ span > )</ span >
82+ - < span id ="header-project "> tools.cli</ span > < span id ="header-version "> 1.0.220 -SNAPSHOT</ span > < span id ="header-status-block "> (< span id ="header-status "> in development</ span > )</ span >
8383 </ h1 >
8484< span id ="author-line "> by < span id ="author-name "> Gareth Jones, Sung Pae, Sean Corfield</ span > < br /> </ span >
8585< br /> Full namespace name: < span id ="long-name "> clojure.tools.cli</ span >
@@ -124,7 +124,7 @@ <h2 id="clojure.tools.cli/cli">cli</h2>
124124 < pre id ="var-specs "> </ pre >
125125
126126
127- < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/3195c7e95fa7527fb0c74085418f44006e724863 /src/main/clojure/clojure/tools/cli.cljc#L197 "> Source</ a >
127+ < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/a206f00b0bd2da4b40e3d7ce9510bdc5019a7928 /src/main/clojure/clojure/tools/cli.cljc#L206 "> Source</ a >
128128 </ div > < div id ="var-entry ">
129129 < br />
130130 < hr />
@@ -139,7 +139,7 @@ <h2 id="clojure.tools.cli/format-lines">format-lines</h2>
139139 < pre id ="var-specs "> </ pre >
140140 < span class ="var-added "> < span id ="content "> Added in tools.cli version 0.3.0</ span > < br /> </ span >
141141
142- < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/3195c7e95fa7527fb0c74085418f44006e724863 /src/main/clojure/clojure/tools/cli.cljc#L495 "> Source</ a >
142+ < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/a206f00b0bd2da4b40e3d7ce9510bdc5019a7928 /src/main/clojure/clojure/tools/cli.cljc#L522 "> Source</ a >
143143 </ div > < div id ="var-entry ">
144144 < br />
145145 < hr />
@@ -153,7 +153,7 @@ <h2 id="clojure.tools.cli/get-default-options">get-default-options</h2>
153153 < pre id ="var-specs "> </ pre >
154154 < span class ="var-added "> < span id ="content "> Added in tools.cli version 0.3.2</ span > < br /> </ span >
155155
156- < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/3195c7e95fa7527fb0c74085418f44006e724863 /src/main/clojure/clojure/tools/cli.cljc#L529 "> Source</ a >
156+ < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/a206f00b0bd2da4b40e3d7ce9510bdc5019a7928 /src/main/clojure/clojure/tools/cli.cljc#L555 "> Source</ a >
157157 </ div > < div id ="var-entry ">
158158 < br />
159159 < hr />
@@ -166,7 +166,7 @@ <h2 id="clojure.tools.cli/make-summary-part">make-summary-part</h2>
166166 < pre id ="var-specs "> </ pre >
167167 < span class ="var-added "> < span id ="content "> Added in tools.cli version 0.3.0</ span > < br /> </ span >
168168
169- < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/3195c7e95fa7527fb0c74085418f44006e724863 /src/main/clojure/clojure/tools/cli.cljc#L471 "> Source</ a >
169+ < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/a206f00b0bd2da4b40e3d7ce9510bdc5019a7928 /src/main/clojure/clojure/tools/cli.cljc#L498 "> Source</ a >
170170 </ div > < div id ="var-entry ">
171171 < br />
172172 < hr />
@@ -220,6 +220,9 @@ <h2 id="clojure.tools.cli/parse-opts">parse-opts</h2>
220220 boolean toggle that is set to true when specified on the
221221 command line.
222222
223+ :missing Indicates that this option is required (not just an argument),
224+ and provides the string to use as an error message if omitted.
225+
223226 :desc A optional short description of this option.
224227
225228 :default The default value of this option. If none is specified, the
@@ -273,7 +276,9 @@ <h2 id="clojure.tools.cli/parse-opts">parse-opts</h2>
273276 You cannot specify both :assoc-fn and :update-fn for an
274277 option.
275278
276- :update-fn A function that receives the the current parsed option value,
279+ :update-fn Without :multi true:
280+
281+ A function that receives just the existing parsed option value,
277282 and returns a new option value, for each option :id present.
278283 The default is 'identity'.
279284
@@ -291,8 +296,33 @@ <h2 id="clojure.tools.cli/parse-opts">parse-opts</h2>
291296 ["-v" "--verbose"
292297 :update-fn (fnil inc 0)]
293298
294- You cannot specify both :assoc-fn and :update-fn for an
295- option.
299+ With :multi true:
300+
301+ A function that receives both the existing parsed option value,
302+ and the parsed option value from each instance of the option,
303+ and returns a new option value, for each option :id present.
304+ The :multi option is ignored if you do not specify :update-fn.
305+
306+ For non-idempotent options, where you need to compute a option
307+ value based on the current value and a new value from the
308+ command line. This can sometimes be easier than use :assoc-fn.
309+
310+ ["-f" "--file NAME"
311+ :default []
312+ :update-fn conj
313+ :multi true]
314+
315+ :default is applied first. If you wish to omit the :default
316+ option value, use fnil in your :update-fn as follows:
317+
318+ ["-f" "--file NAME"
319+ :update-fn (fnil conj [])
320+ :multi true]
321+
322+ Regardless of :multi, you cannot specify both :assoc-fn
323+ and :update-fn for an option.
324+
325+ :multi true/false, applies only to options that use :update-fn.
296326
297327 :validate A vector of [validate-fn validate-msg ...]. Multiple pairs
298328 of validation functions and error messages may be provided.
@@ -304,7 +334,13 @@ <h2 id="clojure.tools.cli/parse-opts">parse-opts</h2>
304334
305335 :validate-msg A vector of error messages corresponding to :validate-fn
306336 that will be added to the :errors vector on validation
307- failure.
337+ failure. Can be plain strings, or functions to be applied
338+ to the (invalid) option argument to produce a string.
339+
340+ :post-validation true/false. By default, validation is performed after
341+ parsing an option, prior to assoc/default/update processing.
342+ Specifying true here will cause the validation to be
343+ performed after assoc/default/update processing, instead.
308344
309345parse-opts returns a map with four entries:
310346
@@ -337,7 +373,7 @@ <h2 id="clojure.tools.cli/parse-opts">parse-opts</h2>
337373 < pre id ="var-specs "> </ pre >
338374 < span class ="var-added "> < span id ="content "> Added in tools.cli version 0.3.0</ span > < br /> </ span >
339375
340- < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/3195c7e95fa7527fb0c74085418f44006e724863 /src/main/clojure/clojure/tools/cli.cljc#L544 "> Source</ a >
376+ < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/a206f00b0bd2da4b40e3d7ce9510bdc5019a7928 /src/main/clojure/clojure/tools/cli.cljc#L570 "> Source</ a >
341377 </ div > < div id ="var-entry ">
342378 < br />
343379 < hr />
@@ -353,7 +389,7 @@ <h2 id="clojure.tools.cli/summarize">summarize</h2>
353389 < pre id ="var-specs "> </ pre >
354390 < span class ="var-added "> < span id ="content "> Added in tools.cli version 0.3.0</ span > < br /> </ span >
355391
356- < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/3195c7e95fa7527fb0c74085418f44006e724863 /src/main/clojure/clojure/tools/cli.cljc#L512 "> Source</ a >
392+ < a id ="var-source " href ="https://github.com/clojure/tools.cli/blob/a206f00b0bd2da4b40e3d7ce9510bdc5019a7928 /src/main/clojure/clojure/tools/cli.cljc#L539 "> Source</ a >
357393 </ div >
358394</ div >
359395
@@ -364,7 +400,7 @@ <h2 id="clojure.tools.cli/summarize">summarize</h2>
364400 </ div >
365401 </ div >
366402 < div id ="foot ">
367- < div id ="copyright " style ="text-align: center; "> Copyright 2007-2019 by Rich Hickey and the various contributors</ div >
403+ < div id ="copyright " style ="text-align: center; "> Copyright 2007-2023 by Rich Hickey and the various contributors</ div >
368404 </ div >
369405 </ div >
370406 < div id ="DesignedBy "> Logo & site design by < a href ="http://www.tomhickey.com " title ="Visit Tom Hickey's website. "> Tom Hickey</ a > .< br />
0 commit comments