package cmdliner

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

Install

Dune Dependency

Authors

Maintainers

Sources

cmdliner-1.0.1.tbz
md5=6eb1083e64fa8775e5df16d8c9b1bc75

Description

Cmdliner allows the declarative definition of command line interfaces for OCaml.

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 has no dependencies and is distributed under the ISC license.

README

Cmdliner — Declarative definition of command line interfaces for OCaml

v1.0.1

Cmdliner allows the declarative definition of command line interfaces for OCaml.

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 has no dependencies and is distributed under the ISC 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 from the source interfaces. It can be consulted online or via odig doc cmdliner.

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 and run with:

topkg build --tests true && topkg test

Dependencies (5)

  1. result < "1.5"
  2. topkg >= "0.8.1" & build
  3. ocamlbuild build
  4. ocamlfind build
  5. ocaml >= "4.01.0" & < "5.0"

Dev Dependencies

None

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

Conflicts

None