culr/lib/env.ml
2024-12-03 12:46:28 +11:00

18 lines
602 B
OCaml

open Seq
let to_sixteen f = ints 0 |> take 16 |> f |> Array.of_seq
let ( >>= ) = Option.bind
let mem = Fun.flip Array.mem
let colours =
let init_default = to_sixteen (map (fun x -> Types.Simple x)) in
Sys.getenv_opt "CULRS"
>>= (fun s -> if String.length s > 0 then Some s else None)
|> Option.fold ~none:init_default ~some:Parse.parse_env_colours
let order =
let init_default = to_sixteen (filter (fun i -> i |> mem [| 0; 8 |])) in
Sys.getenv_opt "CULR_ORDER"
>>= (fun s -> if String.length s > 0 then Some s else None)
|> Option.fold ~none:init_default ~some:Parse.parse_env_order