Learning to use the Drom
build system for ocam/reasonml projects.
It took nothing at all to compile with reason. Apparently, drom
is aware of reason syntax files. This is a really nice addition to the options for building with reason/ocaml and might be my go to option to start a project. Thanks to the folks at OCamlPro
.
Examples
$ now minus 1 hour
$ now minus 5 days
From Scratch
[I] ➜ opam install drom
[I] ➜ drom new now
[I] ➜ drom build -y
[I] ➜ ./now
2021-01-10T13:18:18
Installing on your system
[I] ➜ drom install
Warning: drom is not correctly installed in this switch:
/Users/mandalarian/Downloads/now/_opam/share/drom/skeletons is missing
Warning: could not load skeletons from share/drom/skeletons/project
Warning: could not load skeletons from share/drom/skeletons/package
drom: Entering directory '/Users/mandalarian/Downloads/now'
In opam switch /Users/mandalarian/Downloads/now/_opam
Warning: could not load licenses from share/drom/licenses
Calling git submodule update --init --recursive
Calling opam exec -- dune build @install
Done: 65/71 (jobs: 1)Calling opam uninstall -y now
[ERROR] now unknown package
Calling opam uninstall -y now_lib
[ERROR] now_lib unknown package
Calling opam pin -y --no-action -k path .
This will pin the following packages: now_lib, now. Continue?
[Y/n] y
Package now_lib does not exist, create as a NEW package?
[Y/n] y
[now_lib.~dev] synchronised from file:///Users/mandalarian/Downloads/now
[WARNING] Failed checks on now_lib package definition from
source at file:///Users/mandalarian/Downloads/now:
warning 35: Missing field 'homepage'
warning 36: Missing field 'bug-reports'
now_lib is now pinned to file:///Users/mandalarian/Downloads/now (version 0.1.0)
Package now does not exist, create as a NEW package? [Y/n] y
[now.~dev] synchronised from file:///Users/mandalarian/Downloads/now
[WARNING] Failed checks on now package definition from source
at file:///Users/mandalarian/Downloads/now:
warning 35: Missing field 'homepage'
warning 36: Missing field 'bug-reports'
now is now pinned to file:///Users/mandalarian/Downloads/now (version 0.1.0)
Calling opam install -y now now_lib
<><> Synchronising pinned packages ><><><><><><><><><><><> 🐫
[now.0.1.0] synchronised from file:///Users/mandalarian/Downloads/now
[now_lib.0.1.0] synchronised from file:///Users/mandalarian/Downloads/now
The following actions will be performed:
∗ install now_lib 0.1.0*
∗ install now 0.1.0*
===== ∗ 2 =====
<><> Processing actions <><><><><><><><><><><><><><><><><> 🐫
∗ installed now_lib.0.1.0
∗ installed now.0.1.0
Done.
Installation OK
# open a new terminal and run `which now`
# now is installed at /Users/mandalarian/.local/bin/now
now on reason [✘!?] via ⬢ v14.4.0
[I] ➜
[I] ➜ which now
/Users/mandalarian/.local/bin/now
[I] ➜ now
2021-01-10T13:28:27
/
[I] ➜ now minus 1 hour
2021-01-10T12:28:28
/
[I] ➜ now minus 5 days
2021-01-05T13:28:39
Top comments (0)