Module Cmd.Exit
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt
:DkSDKProject_DeclareAvailable(cmdliner CONSTRAINT "= 1.1.1+dune" FINDLIBS cmdliner) DkSDKProject_MakeAvailable(cmdliner)
Add the
Findlib::cmdliner
library to any desired targets insrc/*/CMakeLists.txt
:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::cmdliner)
Click your IDE's
Build
button
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install cmdliner.1.1.1+dune
Edit your
dune-project
and add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (cmdliner (>= 1.1.1+dune))))
Then run:
dune build *.opam # if this fails, run: dune build
Edit your
<package>.opam
file and add:depends: [ # ... existing dependencies ... "cmdliner" {>= "1.1.1+dune"} ]
Then run:
opam install . --deps-only
FINALLY, add the cmdliner
library to any desired (library)
and/or (executable)
targets in your **/dune
files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
cmdliner))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
cmdliner))
Exit codes
type
code`` = int
The type for exit codes.
Warning. You should avoid status codes strictly greater than 125 as those may be used by some shells.
val
ok :
code
ok
is 0
, the exit status for success.
val
some_error :
code
some_error
is 123
, an exit status for indisciminate errors reported
on stderr.
val
cli_error :
code
cli_error
is 124
, an exit status for command line parsing errors.
val
internal_error :
code
internal_error
is 125
, an exit status for unexpected internal
errors.
Exit code information
type
info
The type for exit code information.
exit_info ~docs ~doc min ~max
describe the range of exit statuses from
min
to max
(defaults to min
). doc
is the man page information
for the statuses, defaults to "undocumented"
. docs
is the title of
the man page section in which the statuses will be listed, it defaults
to Manpage.s_exit_status
.
In doc
the documentation markup
language can be used with following variables:
$(status)
, the value ofmin
.$(status_max)
, the value ofmax
.- The variables mentioned in the
Cmd.info
val
defaults :
info
list
defaults
are exit code information for ok
,
some_error
cli_error
and
internal_error
.