13 lines
475 B
OCaml
13 lines
475 B
OCaml
open Processing
|
|
|
|
let read_all colours =
|
|
In_channel.set_binary_mode stdin true;
|
|
let open Types in
|
|
let t = Emitter.create and culr = Culriser.create colours in
|
|
Emitter.serialise t (Ansi [ Fg (Culriser.current culr) ]);
|
|
Angstrom_unix.parse_many ~buf_size:4096 Parse.culr_parse
|
|
(fun c -> c |> ansi_filter culr |> Culriser.serialise_with_colour culr t)
|
|
stdin
|
|
|> function
|
|
| _, Ok _ -> Emitter.flush t
|
|
| _, Error e -> prerr_endline ("error encountered:" ^ e) |