Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
e55dc7556d | |||
14d25abc35 |
@@ -3,7 +3,7 @@
|
|||||||
A simple CLI library for Carp.
|
A simple CLI library for Carp.
|
||||||
|
|
||||||
```clojure
|
```clojure
|
||||||
(load "https://veitheller.de/git/carpentry/cli@0.0.2")
|
(load "https://veitheller.de/git/carpentry/cli@0.0.5")
|
||||||
|
|
||||||
(defn main []
|
(defn main []
|
||||||
(let [p (=> (CLI.new @"My super cool tool!")
|
(let [p (=> (CLI.new @"My super cool tool!")
|
||||||
@@ -18,7 +18,7 @@ A simple CLI library for Carp.
|
|||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```clojure
|
```clojure
|
||||||
(load "https://veitheller.de/git/carpentry/cli@0.0.2")
|
(load "https://veitheller.de/git/carpentry/cli@0.0.5")
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@@ -43,8 +43,8 @@ manually.
|
|||||||
Once you’re done building your flag structure, you can run `CLI.parse`. It
|
Once you’re done building your flag structure, you can run `CLI.parse`. It
|
||||||
will not abort the program on error, instead it will tell you what went wrong
|
will not abort the program on error, instead it will tell you what went wrong
|
||||||
in a `Result.Error`. If it succeeds, the `Result.Success` contains a `Map` from
|
in a `Result.Error`. If it succeeds, the `Result.Success` contains a `Map` from
|
||||||
the long flag name to the value (the values are `Maybe`s, since they might be
|
the long flag name to the value. The values are not in the map if they are
|
||||||
optional arguments.
|
unset.
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
||||||
|
7
cli.carp
7
cli.carp
@@ -6,7 +6,7 @@
|
|||||||
(doc CLI "is a simple CLI library for Carp.
|
(doc CLI "is a simple CLI library for Carp.
|
||||||
|
|
||||||
```clojure
|
```clojure
|
||||||
(load \"https://veitheller.de/git/carpentry/cli@0.0.2\")
|
(load \"https://veitheller.de/git/carpentry/cli@0.0.5\")
|
||||||
|
|
||||||
(defn main []
|
(defn main []
|
||||||
(let [p (=> (CLI.new @\"My super cool tool!\")
|
(let [p (=> (CLI.new @\"My super cool tool!\")
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```clojure
|
```clojure
|
||||||
(load \"https://veitheller.de/git/carpentry/cli@0.0.2\")
|
(load \"https://veitheller.de/git/carpentry/cli@0.0.5\")
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@@ -88,7 +88,8 @@ unset.")
|
|||||||
(match @t
|
(match @t
|
||||||
(Integer i) (str i)
|
(Integer i) (str i)
|
||||||
(Floating f) (str f)
|
(Floating f) (str f)
|
||||||
(Str s) (str s)))
|
(Str s) (str s)
|
||||||
|
(None) @"none"))
|
||||||
|
|
||||||
(defn to-int [x]
|
(defn to-int [x]
|
||||||
(match x
|
(match x
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
</h1>
|
</h1>
|
||||||
<div class="module-description">
|
<div class="module-description">
|
||||||
<p>is a simple CLI library for Carp.</p>
|
<p>is a simple CLI library for Carp.</p>
|
||||||
<pre><code class="language-clojure">(load "https://veitheller.de/git/carpentry/cli@0.0.2")
|
<pre><code class="language-clojure">(load "https://veitheller.de/git/carpentry/cli@0.0.5")
|
||||||
|
|
||||||
(defn main []
|
(defn main []
|
||||||
(let [p (=> (CLI.new @"My super cool tool!")
|
(let [p (=> (CLI.new @"My super cool tool!")
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
(Result.Error msg) (do (IO.errorln &msg) (CLI.usage &p)))))
|
(Result.Error msg) (do (IO.errorln &msg) (CLI.usage &p)))))
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<h2>Installation</h2>
|
<h2>Installation</h2>
|
||||||
<pre><code class="language-clojure">(load "https://veitheller.de/git/carpentry/cli@0.0.2")
|
<pre><code class="language-clojure">(load "https://veitheller.de/git/carpentry/cli@0.0.5")
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<h2>Usage</h2>
|
<h2>Usage</h2>
|
||||||
<p><code>CLI</code> should be built using combinators, as in the example above. It has, as of
|
<p><code>CLI</code> should be built using combinators, as in the example above. It has, as of
|
||||||
@@ -65,25 +65,6 @@ the long flag name to the value. The values are not in the map if they are
|
|||||||
unset.</p>
|
unset.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="binder">
|
|
||||||
<a class="anchor" href="#(defdynamic CLI.*gensym-counter* 1001)">
|
|
||||||
<h3 id="(defdynamic CLI.*gensym-counter* 1001)">
|
|
||||||
(defdynamic CLI.*gensym-counter* 1001)
|
|
||||||
</h3>
|
|
||||||
</a>
|
|
||||||
<div class="description">
|
|
||||||
dynamic
|
|
||||||
</div>
|
|
||||||
<p class="sig">
|
|
||||||
Dynamic
|
|
||||||
</p>
|
|
||||||
<span>
|
|
||||||
|
|
||||||
</span>
|
|
||||||
<p class="doc">
|
|
||||||
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="binder">
|
<div class="binder">
|
||||||
<a class="anchor" href="#Option">
|
<a class="anchor" href="#Option">
|
||||||
<h3 id="Option">
|
<h3 id="Option">
|
||||||
|
@@ -3,8 +3,11 @@
|
|||||||
(defn main []
|
(defn main []
|
||||||
(let [p (=> (CLI.new @"My super cool tool!")
|
(let [p (=> (CLI.new @"My super cool tool!")
|
||||||
(CLI.add &(CLI.int "flag" "f" "my flag" true))
|
(CLI.add &(CLI.int "flag" "f" "my flag" true))
|
||||||
(CLI.add &(CLI.str "thing" "t" "my thing" false @"hi" &[@"a" @"b" @"hi"])))]
|
(CLI.add &(CLI.str "thing" "t" "my thing" false @"hi" &[@"a" @"b" @"hi"]))
|
||||||
|
(CLI.add &(CLI.str "other" "o" "my thing" false)))]
|
||||||
(match (CLI.parse &p)
|
(match (CLI.parse &p)
|
||||||
(Result.Success flags)
|
(Result.Success flags)
|
||||||
(println* &(str &(Map.get &flags "flag")) " " &(str &(Map.get &flags "thing")))
|
(println*
|
||||||
|
&(str &(Map.get &flags "flag")) " " &(str &(Map.get &flags "thing"))
|
||||||
|
" " &(str &(Map.get &flags "other")))
|
||||||
(Result.Error msg) (do (IO.errorln &msg) (CLI.usage &p)))))
|
(Result.Error msg) (do (IO.errorln &msg) (CLI.usage &p)))))
|
||||||
|
Reference in New Issue
Block a user