My agentic slop goes here. Not intended for anyone else!
at main 1.6 kB view raw
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)