Initial commit.
[todo.git] / todo.ml
1 (* 'todo' command, for adding, listing, deleting etc tasks from the
2  * command line.
3  *)
4
5 open CalendarLib
6
7 open Todo_types
8 open Todo_utils
9
10 open Printf
11
12 (* Parse the command line. *)
13 let subcommand, anon_params, list_retired, list_all, tag_del, todo_estimate =
14   Todo_cmdline.parse_command_line ()
15
16 (* Connect to the database. *)
17 let dbh = PGOCaml.connect ~database:"todo" ()
18
19 (* Run the subcommand. *)
20 let () =
21   match subcommand with
22   | Idea ->                     (* todo idea *)
23      Todo_add.cmd_idea dbh anon_params
24   | List ->                     (* todo list *)
25      Todo_list.cmd_list dbh anon_params list_retired list_all
26   | Move ->                     (* todo move *)
27      Todo_move.cmd_move dbh anon_params
28   | Retire ->                   (* todo retire *)
29      Todo_retire.cmd_retire dbh anon_params
30   | Tag ->                      (* todo tag *)
31      Todo_tag.cmd_tag dbh anon_params tag_del
32   | Tag_add ->                  (* todo tag-add *)
33      Todo_tag.cmd_tag_add dbh anon_params
34   | Tag_colour ->               (* todo tag-colour *)
35      Todo_tag.cmd_tag_colour dbh anon_params
36   | Tag_del ->                  (* todo tag-del *)
37      Todo_tag.cmd_tag_del dbh anon_params
38   | Tag_list ->                 (* todo tag-list *)
39      Todo_tag.cmd_tag_list dbh anon_params
40   | Today ->                    (* todo today *)
41      Todo_add.cmd_today dbh anon_params
42   | Todo ->                     (* todo todo|task *)
43      Todo_add.cmd_todo dbh anon_params todo_estimate