From f897e0cbb8c359252a009af2236cd9fbb6425203 Mon Sep 17 00:00:00 2001 From: atagen Date: Tue, 3 Dec 2024 12:46:28 +1100 Subject: [PATCH] create env module --- bin/main.ml | 16 +--------------- lib/env.ml | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 15 deletions(-) create mode 100644 lib/env.ml diff --git a/bin/main.ml b/bin/main.ml index c6bfc52..0819361 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -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 diff --git a/lib/env.ml b/lib/env.ml new file mode 100644 index 0000000..eb6a2ca --- /dev/null +++ b/lib/env.ml @@ -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