open Cmdliner open Cmdliner.Term.Syntax let files = let doc = "Files to process" in Arg.(non_empty & pos_all string [] & info [] ~docv:"FILE" ~doc) let timezone = let doc = "Target timezone for output (e.g. Europe/Rome). Defaults to local timezone." in Arg.(value & opt (some string) None & info [ "timezone"; "z" ] ~docv:"TZ" ~doc) let main_command f = let doc = "Convert iCalendar files to remind format" in let man = [] in Cmd.make (Cmd.info "ical2rem" ~version:"%%VERSION%%" ~doc ~man) @@ let+ files = files and+ tz = timezone in f tz files let main f = Cmd.eval @@ main_command f