(all-subcommands climatic-args)
Returns all subcommands, as strings. We get all versions of all subcommands.
Returns all subcommands, as strings. We get all versions of all subcommands.
(all-subcommands-aliases climatic-args)
Maps all subcommands and subcommand aliases to their canonical name. E.g. {'add': 'add', 'a': 'add'}.
We basically add them all, then remove nil keys.
Maps all subcommands and subcommand aliases to their canonical name. E.g. {'add': 'add', 'a': 'add'}. We basically add them all, then remove nil keys.
(assert-cfg-sanity currentCfg)
Checks configuration and throws if anything wrong.
First we make a list of nil
plus all subcmds.
Checks configuration and throws if anything wrong. 1. are :option values unique? 2. are :short values unique? First we make a list of `nil` plus all subcmds.
(assert-unique-values name vec-opts option)
Check that all values are unique. name is the area of the configuration vec-opts are the options to check option is the keyword to check.
Check that all values are unique. name is the area of the configuration vec-opts are the options to check option is the keyword to check.
(assoc-new-multivalue parameter-map option v)
Associates a new multiple value to the current parameter map. If the current value is not a vector, creates a new vector with the new value.
Associates a new multiple value to the current parameter map. If the current value is not a vector, creates a new vector with the new value.
(asString s)
Turns a collection of strings into one string, or the string itself.
Turns a collection of strings into one string, or the string itself.
(canonicalize-subcommand commands subcmd)
Returns the 'canonical' name of a subcommand, i.e. the one that appears in :command, even if we pass an alias or short version.
Returns the 'canonical' name of a subcommand, i.e. the one that appears in :command, even if we pass an alias or short version.
(errors-for-missing-mandatory-args climatic-options parsed-opts)
Gets us a sequence of errors if mandatory options are missing
Gets us a sequence of errors if mandatory options are missing
(generate-a-command {:keys [command short description]})
Maybe we should use a way to format commands
E.g. (pp/cl-format true "~{ ~vA ~vA ~vA ~}" v)
(clojure.pprint/cl-format true "~3a ~a" "pippo" "pluto")
Maybe we should use a way to format commands E.g. (pp/cl-format true "~{ ~vA ~vA ~vA ~}" v) (clojure.pprint/cl-format true "~3a ~a" "pippo" "pluto")
(generate-global-command-list commands)
Creates a list of commands and descriptions. Commands are of kind ::S/commands
Creates a list of commands and descriptions. Commands are of kind ::S/commands
(generate-global-help cfg)
This is where we generate global help, so global attributes and subcommands.
This is where we generate global help, so global attributes and subcommands.
(generate-section title lines)
Generates a section (as a collection of strings, possibly nested, but we'll flatten it out). If a section has no content, we return [].
Generates a section (as a collection of strings, possibly nested, but we'll flatten it out). If a section has no content, we return [].
(generate-sections name version usage commands opts-title opts)
Generates all sections. All those positional parameters are not that nice.
Generates all sections. All those positional parameters are not that nice.
(generate-subcmd-help cfg cmd)
This is where we generate help for a specific subcommand.
This is where we generate help for a specific subcommand.
(get-first-rest-description-rows row-or-rows)
get title and description of description rows
get title and description of description rows
(get-options-for climatic-args subcmd)
Gets specific :options for a subcommand or, if nil, for global.
Gets specific :options for a subcommand or, if nil, for global.
(get-options-summary cfg subcmd)
To get the sumamry of options, we pass options to tools.cli parse-opts and an empty set of arguments. Parsing will fail but we get the :summary. We then split it into a collection of lines.
To get the sumamry of options, we pass options to tools.cli parse-opts and an empty set of arguments. Parsing will fail but we get the :summary. We then split it into a collection of lines.
(get-subcommand climatic-args subcmd)
Given args and the canonical name of a subcommand, returns the map describing it.
Given args and the canonical name of a subcommand, returns the map describing it.
(indent s)
Indents a single string, or each string in a collection of strings.
Indents a single string, or each string in a collection of strings.
(indent-string s)
Indents a single string.
Indents a single string.
(invoke-subcmd subcommand-def options)
Invokes a subcommand, and produces a Return Value.
The subcommand may:
Invokes a subcommand, and produces a Return Value. The subcommand may: - return an integer (to specify exit code) - return nil - throw a Throwable object
(mk-cli-option {:keys [option short as type default multiple] :as cm-option})
Builds a tools.cli option out of our own format.
Builds a tools.cli option out of our own format.
(mkError config subcommand error text)
Builds an error condition.
Builds an error condition.
(pad s s1 len)
Pads s[, s1] to so many characters
Pads s[, s1] to so many characters
(parse-cmds cmdline config)
This is where magic happens. We first parse global options, then stop, get the subcommand, parse specific options for the subcommand and if all went well we prepare run it.
This fuction returns a structure ::S/lineParseResult that containe information about what went wrong or the command to run.
This is where magic happens. We first parse global options, then stop, get the subcommand, parse specific options for the subcommand and if all went well we prepare run it. This fuction returns a structure ::S/lineParseResult that containe information about what went wrong or the command to run.
(rewrite-opts climatic-args subcmd)
Out of a cli-matic arg list, generates a set of options for tools.cli. It also adds in the -? and --help options to trigger display of helpness.
Out of a cli-matic arg list, generates a set of options for tools.cli. It also adds in the -? and --help options to trigger display of helpness.
(run-cmd args setup)
This is the actual function that is executed. It wraps run-cmd* and then does the printing of any errors, of help pages and System.exit.
This is the actual function that is executed. It wraps run-cmd* and then does the printing of any errors, of help pages and System.exit.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close