My agentic slop goes here. Not intended for anyone else!
1open Cmdliner
2
3(* Main command *)
4let () =
5 let info = Cmd.info "sortal"
6 ~version:"0.1.0"
7 ~doc:"Contact metadata management"
8 ~man:[
9 `S Manpage.s_description;
10 `P "Sortal manages contact metadata including URLs, emails, ORCID identifiers, \
11 and social media handles. Data is stored as JSON in XDG-compliant locations.";
12 `S Manpage.s_commands;
13 `P "Use $(b,sortal COMMAND --help) for detailed help on each command.";
14 ]
15 in
16
17 (* Create command terms using Sortal.Cmd *)
18 let list_cmd_term = Term.(const (fun () -> Sortal.Cmd.list_cmd ()) $ const ()) in
19 let list_cmd = Eiocmd.run ~use_keyeio:false ~info:Sortal.Cmd.list_info
20 ~app_name:"sortal" ~service:"sortal" list_cmd_term in
21
22 let show_cmd_term = Term.(const (fun handle -> Sortal.Cmd.show_cmd handle) $ Sortal.Cmd.handle_arg) in
23 let show_cmd = Eiocmd.run ~use_keyeio:false ~info:Sortal.Cmd.show_info
24 ~app_name:"sortal" ~service:"sortal" show_cmd_term in
25
26 let search_cmd_term = Term.(const (fun query -> Sortal.Cmd.search_cmd query) $ Sortal.Cmd.query_arg) in
27 let search_cmd = Eiocmd.run ~use_keyeio:false ~info:Sortal.Cmd.search_info
28 ~app_name:"sortal" ~service:"sortal" search_cmd_term in
29
30 let stats_cmd_term = Term.(const (fun () -> Sortal.Cmd.stats_cmd ()) $ const ()) in
31 let stats_cmd = Eiocmd.run ~use_keyeio:false ~info:Sortal.Cmd.stats_info
32 ~app_name:"sortal" ~service:"sortal" stats_cmd_term in
33
34 let default_term = Term.(ret (const (`Help (`Pager, None)))) in
35
36 let cmd = Cmd.group info ~default:default_term [
37 list_cmd;
38 show_cmd;
39 search_cmd;
40 stats_cmd;
41 ] in
42
43 exit (Cmd.eval' cmd)