package oskel
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=e7d1abb7cb501334ca495757ef10744883f3773cac8ac67de54394ad5f6dc71b
sha512=228b11bd586b322f0306a08448ef800fc067e4e8979a812590c4bda50ea499d055fb0ecd429ad73caba599fdcd98da8d2ad1fb42253a3d1c6a3ea9737f213cdb
Description
Skeleton generator for OCaml projects
oskel is a tool for generating stubs of OCaml projects pre-equipped with the standard boilerplate: OCamlformat config file, Alcotest scaffolding, auto-generation of [*.opam] files via [dune-project] etc. It supports generating binaries with Cmdliner, Fmt and Logs support. The resulting projects are compliant with [dune-release lint].
Published: 06 May 2020
README
:skull: oskel: skeleton generator for OCaml projects
The standard project type is initialised with:
.opam
file autogeneration viadune-project
;OCamlformat config file;
Alcotest testing boilerplate, with pre-configured Logs initialisation.
Git repository with an initial commit;
OCaml
.gitignore
;README.md
with installation instructions foropam
.
Choice of project layouts
There are multiple project structures, which can be selected via the --kind
flag:
library
(default): library-only package;executable
: a single binary with minimal configuration;binary
: package providing a Cmdliner binary inbin/
, making use of a tested library inlib/
.
Examples of each layout can be seen in the examples/
directory. You can also use e.g. oskel --dry-run --kind executable
to see a preview of the project structure.
Installation
opam install oskel
If you want to contribute to the project, please read CONTRIBUTING.md.
Configuration
oskel
is very configurable (see oskel --help
for details). Most options can be set via environment variables. In particular, you can set your personal metadata in your shell .profile
:
export OSKEL_FULL_NAME="Joe Bloggs"
export OSKEL_EMAIL="joe@example.com"
export OSKEL_GITHUB_ORG="JoeBlo"
Dependencies (7)
- lwt
- ocaml-syntax-shims
- stdlib-shims
- logs
-
fmt
>= "0.8.7"
- cmdliner
-
dune
>= "2.0"
Dev Dependencies (1)
-
cmdliner
with-test & < "1.1.0"
Used by
None
Conflicts
None