package cmdliner

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

Install

Dune Dependency

Authors

Maintainers

Sources

cmdliner-0.9.8.tbz
md5=fc67c937447cc223722f1419fa2189da

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.

README

Cmdliner — Declarative definition of command line interfaces for OCaml

Release 0.9.8

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 (2)

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

Conflicts

None