Skip to content
💀 Skeleton generator for OCaml projects.
OCaml Makefile JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
examples
lib
.gitignore
.ocamlformat
CHANGES.md
CONTRIBUTING.md
LICENSE
Makefile
README.md
dune
dune-project
oskel-help.txt
oskel.opam
prettier.config.js

README.md

💀 oskel: skeleton generator for OCaml projects

> oskel --synopsis "My very own OCaml skeleton" my_project

Creating new project:

my_project
|-- .git
|-- src
|   |-- dune
|   |-- my_project.ml
|   `-- my_project.mli
|
|-- test
|   |-- dune
|   |-- main.ml
|   `-- main.mli
|
|-- .gitignore
|-- .ocamlformat
|-- LICENSE
|-- README.md
|-- dune-project
`-- my_project.opam

The standard project type is initialised with:

  • .opam file autogeneration via dune-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 for opam.

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 in bin/, making use of a tested library in lib/.

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"
You can’t perform that action at this time.