make sep/delim customisable

This commit is contained in:
atagen 2024-12-05 23:40:30 +11:00
parent 6d98e1639b
commit c5c240ca2e
8 changed files with 60 additions and 26 deletions

View file

@ -16,13 +16,20 @@ let match_env_order =
let ( >>= ) = Option.bind
let get_env_colours =
Sys.getenv_opt "CULRS" >>= fun s ->
if String.length s > 0 then Some s else None
let getenv_opt s =
Sys.getenv_opt s >>= fun s -> if String.length s > 0 then Some s else None
let get_env_order =
Sys.getenv_opt "CULR_ORDER" >>= fun s ->
if String.length s > 0 then Some s else None
let explode s = s |> String.to_seq |> Array.of_seq
let get_parser =
let open Parsers in
let sep = getenv_opt "CULR_SEP" and del = getenv_opt "CULR_DELIM" in
match (sep, del) with
| Some s, Some d ->
create_parser ~separator:(explode s) ~delimiter:(explode d) ()
| None, Some d -> create_parser ~delimiter:(explode d) ()
| Some s, None -> create_parser ~separator:(explode s) ()
| None, None -> create_parser ()
let to_sixteen f = ints 0 |> take 16 |> f |> Array.of_seq
@ -58,8 +65,8 @@ let permute (order : order) (colours : colour array) =
colours
let get_colours =
let colours = get_env_colours
and order = get_env_order
let colours = getenv_opt "CULRS"
and order = getenv_opt "CULR_ORDER"
and init_default_colours = to_sixteen (map (fun x -> Types.Intrinsic x))
and init_order_for_colours c =
let open Seq in