utilities-clj.cmd

Provides some options for a command line program.

terminal

(terminal {program-short-desc :short-desc, args :args, opts :options, cli-args :args-desc, execute :execute})
Executes program in terminal.

Runs fn in (:execute) with passed command line arguments (:args).

Supplies program with options (:opts).
Supported default command line options are
    -h (--help)   -t (--trace)

Wraps unhandled exceptions. If -t is set, returns full stack trace.
Otherwise, returns only exception message.

Help provides short program description (:short-description),
description of command line options, description of command line
arguments, etc.

The format for description of command line arguments
(:args-description) is:
    {:required
     [[argument-name1 argument-description1]
      [argument-name2 argument-description2]
       ...]
     :optional
     [[optional-argument-name1 argument-description1]
      [optional-argument-name2 argument-description2]
       ...]}

## Usage

    (require '[utilities.cmd :refer :all])

    (def arguments
         {:short-desc "Program short description goes here."
          :args '(arg1 arg2 ... [optional-arg1] [optional-arg2] ...)
          :opts '(["-o" "--option" "Set some option"
                   :id :opt])
          :args-desc {:required
                      [["arg1" "Description for arg1 goes here."]
                       ["arg2" "Description for arg2 goes here."]
                       ...]
                      :optional
                      [["optional-arg1" "Description for optional-arg1 goes here."]
                       ["optional-arg2" "Description for optional-arg2 goes here."]
                       ...]}
          :execute (fn[args](println "Hello, world!"))})

    (terminal arguments)