package cmdliner

  1. Overview
  2. Docs
Declarative definition of command line interfaces for OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

cmdliner-0.9.4.tbz
md5=5089b4b69993ddc5ce4aac0e30d0c641

Description

Cmdliner is a module for the declarative definition of command line interfaces.

It provides a simple and compositional mechanism to convert command line arguments to OCaml values and pass them to your functions. The module automatically handles syntax errors, help messages and UNIX man page generation. It supports programs with single or multiple commands and respects most of the POSIX and GNU conventions.

Cmdliner is made of a single independent module and distributed under the BSD3 license.

Tags

cli system declarative

Published: 10 Feb 2014

README

Cmdliner — Declarative definition of command line interfaces for OCaml

Release 0.9.4

Cmdliner is a module for the declarative definition of command line interfaces.

It provides a simple and compositional mechanism to convert command line arguments to OCaml values and pass them to your functions. The module automatically handles syntax errors, help messages and UNIX man page generation. It supports programs with single or multiple commands and respects most of the POSIX and GNU conventions.

Cmdliner is made of a single independent module and distributed under the BSD3 license.

Home page: http://erratique.ch/software/cmdliner
Contact: Daniel Bünzli <daniel.buenzl i@erratique.ch>

Installation

Cmdliner can be installed with opam:

opam install cmdliner

If you don't use opam consult the opam file for build instructions.

Documentation

The documentation and API reference is automatically generated by ocamldoc from the interfaces. It can be consulted online and there is a generated version in the doc directory of the distribution.

Sample programs

If you installed Cmdliner with opam sample programs are located in the directory opam config var cmdliner:doc. These programs define the command line of some classic programs.

In the distribution sample programs are located in the test directory of the distribution. They can be built with:

ocamlbuild -use-ocamlfind test/tests.otarget

The resulting binaries are in _build/test.

Dependencies (3)

  1. ocamlbuild build
  2. ocamlfind
  3. ocaml >= "3.12.0" & < "5.0"

Dev Dependencies

None

  1. acgtk >= "1.5.1" & < "1.5.3"
  2. alcotest < "1.0.0"
  3. alcotest-async >= "1.3.0" & < "1.6.0"
  4. alcotest-lwt >= "1.3.0" & < "1.6.0"
  5. alcotest-mirage >= "1.3.0" & < "1.6.0"
  6. alt-ergo = "2.4.0"
  7. altgr-ergo = "2.4.0"
  8. aperf
  9. awa < "0.1.1"
  10. aws-s3 >= "3.0.0" & < "4.6.0"
  11. aws-s3-async < "3.0.0"
  12. bap < "0.9.5"
  13. bap-abi < "2.2.0"
  14. bap-api < "2.2.0"
  15. bap-beagle < "2.3.0"
  16. bap-bil < "2.2.0"
  17. bap-byteweight-frontend
  18. bap-cache < "2.2.0"
  19. bap-callsites
  20. bap-demangle < "2.5.0"
  21. bap-dump-symbols < "2.2.0"
  22. bap-frames < "2.1.1"
  23. bap-frontend < "2.2.0"
  24. bap-fsi-benchmark
  25. bap-ida-plugin < "2.2.0"
  26. bap-llvm < "2.2.0"
  27. bap-main != "2.4.0"
  28. bap-mc < "2.0.0"
  29. bap-objdump < "2.2.0"
  30. bap-optimization < "2.2.0"
  31. bap-phoenix
  32. bap-piqi
  33. bap-plugins < "2.2.0"
  34. bap-std < "1.4.0"
  35. bap-symbol-reader < "2.2.0"
  36. bap-taint < "1.4.0"
  37. bap-taint-propagator
  38. bap-term-mapper < "2.2.0"
  39. bap-trace
  40. bap-veri
  41. bap-warn-unused
  42. bap-x86 < "2.2.0"
  43. batsh >= "0.0.4"
  44. benchpress
  45. benchpress-server
  46. boltzgen < "0.9.3"
  47. brozip
  48. bt
  49. builder < "0.3.1"
  50. builder-web
  51. bytepdf
  52. ca-certs-nss < "3.77"
  53. camels
  54. capnp-rpc-unix < "1.2.3"
  55. caqti = "1.7.0"
  56. caqti-async = "1.7.0"
  57. caqti-lwt = "1.7.0"
  58. certify < "0.2"
  59. charrua-unix
  60. checkseum >= "0.0.2" & < "0.2.0"
  61. cmdtui-lambda-term
  62. coclobas
  63. cohttp >= "0.13.0" & < "0.99.0"
  64. cohttp-lwt-unix != "4.1.2" & < "5.2.0"
  65. cohttp-lwt-unix-nossl
  66. cohttp-lwt-unix-ssl
  67. coin < "0.1.2"
  68. conex
  69. conex-mirage-crypto
  70. conex-nocrypto
  71. confero
  72. craml
  73. crunch < "3.3.0"
  74. current < "0.6"
  75. current_examples < "0.6"
  76. current_web < "0.6"
  77. datakit
  78. datakit-bridge-github
  79. datakit-bridge-local-git
  80. datakit-ci
  81. datakit-client < "0.11.0"
  82. datakit-client-9p
  83. datakit-github
  84. datakit-server >= "0.10.0" & < "0.11.0"
  85. decompress >= "0.8" & < "1.0.0"
  86. depext < "1.0.2"
  87. depgraph
  88. dirsift
  89. dkim < "0.4.0"
  90. dns >= "0.6.0" & < "0.19.1"
  91. dns-forward < "0.9.0"
  92. dns-lwt-unix
  93. dockerfile >= "1.1.0" & < "3.0.0"
  94. dockerfile-cmd
  95. dockerfile-opam < "8.1.0"
  96. dog
  97. dolmen_bin < "0.7"
  98. dream-cli < "0.2.0"
  99. dscheck >= "0.2.0"
  100. dune-deps >= "1.1.0" & < "1.3.0"
  101. dune-release < "1.6.1"
  102. earlybird < "1.0.0"
  103. elasticsearch-cli >= "1.0"
  104. electrod >= "0.2.1"
  105. electrumAnalyzer >= "0.3.5-2"
  106. elpi >= "1.3.1"
  107. equinoxe < "0.2.0"
  108. erlang
  109. ezxenstore < "0.4.3"
  110. facteur
  111. fat-filesystem < "0.15.1"
  112. fsevents-lwt
  113. git < "1.10.0" | >= "3.0.0" & != "3.7.1" & < "3.8.1"
  114. git-unix >= "1.10.0" & < "3.0.0"
  115. github >= "0.4.0" & < "1.1.0"
  116. gobba
  117. happy-eyeballs-lwt < "0.2.0"
  118. hlarp
  119. hll >= "2.7"
  120. http-lwt-client < "0.0.6"
  121. hvsock < "3.0.1"
  122. hxd < "0.3.2"
  123. igvxml
  124. index >= "1.3.0"
  125. index-bench < "1.3.2" | >= "1.4.2"
  126. irmin < "1.0.0"
  127. irmin-bench
  128. irmin-cli
  129. irmin-pack >= "2.3.0"
  130. irmin-test >= "2.3.0"
  131. irmin-tezos
  132. irmin-unix = "1.0.0" | >= "2.3.0"
  133. jitsu
  134. js_of_ocaml >= "2.5" & < "3.0"
  135. js_of_ocaml-compiler < "4.0.0"
  136. jsonxt
  137. kafka >= "0.3" & < "0.5"
  138. kafka_lwt
  139. ketrew < "3.1.0"
  140. kinetic-client >= "0.0.9"
  141. labrys
  142. learn-ocaml < "0.14.1"
  143. learn-ocaml-client < "0.14.1"
  144. letsencrypt < "0.3.0"
  145. letsencrypt-app < "0.5.0"
  146. llopt
  147. mastodon-archive-viewer < "0.4.0"
  148. mbr-format < "1.0.0"
  149. merge-fmt < "0.3"
  150. message-switch
  151. minicaml >= "0.2.2"
  152. mirage >= "0.10.0" & < "2.7.0" | >= "4.0.0" & < "4.4.0"
  153. mirage-block-xen < "2.0.0"
  154. mirage-console >= "2.1.2" & < "2.2.0"
  155. mirage-console-xen-cli
  156. mirage-dns >= "2.6.0" & < "3.0.0"
  157. mirage-seal
  158. mirari
  159. mirror
  160. mkaudio < "1.1.3"
  161. mrmime = "0.5.0"
  162. named-pipe
  163. nbd >= "0.9.2" & < "4.0.3"
  164. obandit >= "0.3.4"
  165. obuilder < "0.4"
  166. ocal
  167. ocaml-gist
  168. ocamlcodoc
  169. ocamlformat < "0.21.0"
  170. ocamlformat-rpc < "0.21.0"
  171. oci
  172. ocp-browser >= "1.1.6" & < "1.3.4"
  173. ocp-indent >= "1.2.0" & != "1.5.2" & < "1.6.0"
  174. ocp-index < "1.3.4"
  175. ocp-reloc
  176. odds < "1.1"
  177. odig < "0.0.2"
  178. odoc < "1.3.0"
  179. omigrate < "0.3.0"
  180. opam-0install < "0.4.3"
  181. opam-0install-cudf < "0.4.1"
  182. opam-build-revdeps
  183. opam-bundle < "0.4"
  184. opam-ci
  185. opam-compiler < "0.2.0"
  186. opam-ed < "0.3"
  187. opam-lib
  188. opam-package-upgrade
  189. opam-publish != "0.3.0+transition" & < "2.1.0"
  190. opam-query
  191. opam2web >= "1.3.0" & < "2.0"
  192. opass >= "2.15"
  193. operf-macro
  194. opium >= "0.12.0"
  195. ordma >= "0.0.5"
  196. osbx
  197. oskel
  198. osx-fsevents
  199. owi >= "0.2"
  200. passmakercmd
  201. pds >= "4.13"
  202. pkcs11-cli < "1.0.1"
  203. plotkicadsch >= "0.2.0"
  204. polly < "0.4.1"
  205. ppx_deriving_cmdliner < "0.3.1"
  206. prof_spacetime
  207. prometheus-app >= "0.4"
  208. protocol-9p < "0.12.1"
  209. protocol-9p-tool
  210. protocol-9p-unix < "0.12.1"
  211. publish < "0.3.4+transition"
  212. qcow < "0.10.2" | >= "0.11.0"
  213. qcow-format
  214. qcow-tool
  215. qmp < "0.20.0"
  216. regenerate < "0.2"
  217. rosetta < "0.3.0"
  218. rotor
  219. rpc >= "1.9.51" & < "5.9.0"
  220. rpclib >= "6.1.0" & < "8.1.1"
  221. satyrographos < "0.0.1.7"
  222. shared-block-ring < "3.0.1"
  223. sibylfs
  224. sid
  225. slack
  226. slack-backup
  227. slacko
  228. snabela
  229. solo5-elftool < "0.3.1"
  230. spin
  231. spotify-cli
  232. sslconf
  233. tallgeese
  234. tar-format >= "0.2.0" & < "0.7.1"
  235. telltime
  236. tensorflow >= "0.0.4"
  237. tezos-context-hash-irmin
  238. tezos-node >= "8.0" & < "13.0"
  239. timmy
  240. tldr >= "0.3.0"
  241. tlstunnel
  242. topkg-care < "0.9.0"
  243. torch < "v0.16.0"
  244. travis-senv
  245. tuntap >= "1.0.0" & != "1.4.1" & < "2.0.1"
  246. u2f
  247. uring < "0.3"
  248. usbmux < "1.3.2"
  249. user-setup >= "0.4"
  250. uuuu < "0.2.0"
  251. valentine
  252. vchan < "6.0.2"
  253. vchan-unix < "6.0.2"
  254. vchan-xen < "6.0.2"
  255. vecosek
  256. vhd-tool
  257. vimebac
  258. vpnkit
  259. webauthn
  260. xapi-idl
  261. xapi-inventory
  262. xapi-rrd-transport
  263. xe-unikernel-upload
  264. xen-block-driver
  265. xen-disk
  266. xen-evtchn
  267. xen-evtchn-unix
  268. xen-gnt >= "1.0.0"
  269. xenctrl
  270. xentropyd
  271. yuscii < "0.3.0"

Conflicts

None

OCaml

Innovation. Community. Security.