aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/main.ml15
1 files changed, 15 insertions, 0 deletions
diff --git a/bin/main.ml b/bin/main.ml
index 573f190..141f016 100644
--- a/bin/main.ml
+++ b/bin/main.ml
@@ -336,6 +336,17 @@ let readings_report y = resolved_year_report ~line:readings_line y
pager or grepped); being invoked wrongly is an error, so [usage] prints a
one-liner to stderr and exits 2, keeping stdout clean for whatever the
caller was really trying to capture. *)
+(* Kept in lockstep with dune-project's own [(version ...)] by `make release`,
+ which bumps BOTH and refuses to proceed if either edit did not take. Two
+ places rather than one because dune's watermarking (`dune subst`) only
+ substitutes in a release tarball, not in a plain `dune build` from a
+ checkout, so a binary built the ordinary way would report a placeholder.
+ A constant edited by the release target is what lectio does too, for the
+ same reason. Deliberately NOT embedded in [help_text]: the cram test pins
+ help's first line, and a version in it would make every release edit a
+ test expectation for no gain. *)
+let version = "0.1.0"
+
let help_text =
{|colitur -- deterministic liturgical calendar engine (Roman rite, 1962)
@@ -345,6 +356,7 @@ usage:
colitur day <year> the resolved day identity, one line per day
colitur readings <year> the Mass reading citations, one line per day
colitur -h, --help this help
+ colitur -V, --version print the version and exit
<year> is a civil year, 1583..9999 inclusive. Each report covers 1 January to
31 December of that year, not a liturgical year.
@@ -394,6 +406,9 @@ let with_year ys f =
let () =
match Sys.argv with
| [| _; ("-h" | "--help" | "help") |] -> print_help ()
+ | [| _; ("-V" | "--version" | "version") |] ->
+ print_endline version;
+ exit 0
| [| _; "easter"; ys |] -> with_year ys easter_report
| [| _; "temporal"; ys |] -> with_year ys temporal_report
| [| _; "day"; ys |] -> with_year ys day_report