diff --git a/lib/pipes.ml b/lib/pipes.ml index ca3c378..00d3832 100644 --- a/lib/pipes.ml +++ b/lib/pipes.ml @@ -1,12 +1,18 @@ let read_all () = In_channel.set_binary_mode stdin true; - let t = Emitter.create - and culr = Processing.Culriser.create [ Simple 4; Simple 1 ] in + let open Types in + let t = Emitter.create + and culr = + Processing.Culriser.create ~s:[| 0; 2; 1; 3; 4 |] + ~f:[ (function RGB (r, g, _) -> (g > 0 || r = 255) | _ -> true) ] + [| Simple 0; Simple 1; Simple 2; RGB (255, 0, 127); RGB (0, 200, 0) |] + in + Emitter.serialise t (Ansi [ Fg (Processing.Culriser.next culr) ]); Angstrom_unix.parse_many ~buf_size:4096 Parse.culr_parse (fun c -> c |> Processing.ansi_filter - |> Processing.Culriser.add_colour culr - |> List.iter (Emitter.serialise t)) + |> Processing.Culriser.add_colour culr t + |> Emitter.serialise t) stdin |> function | _, Ok _ ->