This commit is contained in:
Guillaume 2026-03-14 00:10:00 +01:00
parent f724aba407
commit c396b3d135
3 changed files with 41 additions and 9 deletions

View file

@ -1,15 +1,43 @@
type command = { description : string; run : State.t -> State.t }
module Cmd = Map.Make (String)
let commands =
[
( "next",
{ description = "Move cursor to the next log line"; run = State.next } );
( "prev",
{ description = "Move cursor to the previous line"; run = State.prev } );
( "show",
{
description = "Display the current log line";
run =
(fun s ->
Printf.printf "[%d]: %s\n" (State.cursor s) (State.show_line s);
s);
} );
]
|> List.to_seq |> Cmd.of_seq
let help () =
Printf.printf "Available commands:\n";
Cmd.iter
(fun cmd args -> Printf.printf " %-11s %s\n" cmd args.description)
commands;
print_endline " exit, quit Exit the inspector"
let rec loop state =
print_string "inspector> ";
flush stdout;
try
match read_line () |> String.lowercase_ascii with
let cmd = read_line () |> String.lowercase_ascii in
match cmd with
| "" -> loop state
| "exit" | "quit" -> print_endline "bye"
| "next" -> loop (State.next state)
| "prev" -> loop (State.prev state)
| "show" ->
Printf.printf "[%d]: %s\n" (State.cursor state) (State.show_line state);
loop state
| str ->
print_endline str;
loop state
| _ -> (
match Cmd.find_opt cmd commands with
| Some c -> loop (c.run state)
| None ->
Printf.printf "Unknown command: %s\n" cmd;
loop state)
with End_of_file -> print_endline "bye"