create env module

This commit is contained in:
atagen 2024-12-03 12:46:28 +11:00
parent 11df13e394
commit f897e0cbb8
2 changed files with 18 additions and 15 deletions

View File

@ -1,17 +1,3 @@
open Culr
let to_sixteen = Seq.ints 0 |> Seq.take 16 |> Array.of_seq
let colours =
let init_default =
to_sixteen |> Array.map (fun x -> Types.Simple x)
in
Sys.getenv_opt "CULRS"
|> Option.fold ~none:init_default ~some:Parse.parse_env_colours
let order =
let init_default = to_sixteen in
Sys.getenv_opt "CULR_ORDER"
|> Option.fold ~none:init_default ~some:Parse.parse_env_order
let () = Pipes.read_all colours order
let () = Pipes.read_all Env.colours Env.order

17
lib/env.ml Normal file
View File

@ -0,0 +1,17 @@
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