diff options
Diffstat (limited to 'bin/main.ml')
| -rw-r--r-- | bin/main.ml | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/bin/main.ml b/bin/main.ml index ca89a12..573f190 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -330,10 +330,57 @@ let resolved_year_report ~line y = let day_report y = resolved_year_report ~line:day_line y let readings_report y = resolved_year_report ~line:readings_line y +(* Help and usage are deliberately DIFFERENT things, and the difference is the + Unix convention rather than a preference: asking for help is a request that + SUCCEEDED, so [--help] prints to stdout and exits 0 (it can be piped into a + 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. *) +let help_text = + {|colitur -- deterministic liturgical calendar engine (Roman rite, 1962) + +usage: + colitur easter <year> Easter, and the movable feasts anchored to it + colitur temporal <year> the temporal cycle, one line per day + 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 + +<year> is a civil year, 1583..9999 inclusive. Each report covers 1 January to +31 December of that year, not a liturgical year. + +output formats: + day date weekday season week slug rank colour [+commemoration ...] + 2026-04-05 sunday paschaltide 1 ef-easter-sunday class-1 white + readings date slug | Epistle | Gospel + 2026-12-25 ef-nativity | Heb 1:1-12 | John 1:1-14 + + A citation contains spaces, so readings uses " | " between its fields while + day stays space-separated; that is why they are separate commands rather + than extra columns. + +environment: + COLITUR_DATA_DIR + Read the calendar data from this directory instead of the + installed (<prefix>/share/colitur/ef) or build-tree location. + If it is set and holds no sanctoral.sexp, colitur exits 2 rather + than silently falling back to a different copy of the data. + +exit status: + 0 success + 2 bad usage, year out of range, or the calendar data could not be read + +Reading references only (e.g. "Jn 3:16"); never scripture text. +See colitur(1) for the full description and the sources it computes against.|} + +let print_help () = + print_endline help_text; + exit 0 + let usage () = prerr_endline "colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur \ - readings <year>"; + readings <year> (try: colitur --help)"; exit 2 let with_year ys f = @@ -346,6 +393,7 @@ let with_year ys f = let () = match Sys.argv with + | [| _; ("-h" | "--help" | "help") |] -> print_help () | [| _; "easter"; ys |] -> with_year ys easter_report | [| _; "temporal"; ys |] -> with_year ys temporal_report | [| _; "day"; ys |] -> with_year ys day_report |
