Add command dispatcher
This simplifies the code in cgit.c and makes it easier to extend cgit with
new pages/commands.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
diff --git a/cmd.h b/cmd.h
new file mode 100644
index 0000000..ec9e691
--- /dev/null
+++ b/cmd.h
@@ -0,0 +1,15 @@
+#ifndef CMD_H
+#define CMD_H
+
+typedef void (*cgit_cmd_fn)(struct cgit_context *ctx);
+
+struct cgit_cmd {
+ const char *name;
+ cgit_cmd_fn fn;
+ unsigned int want_repo:1,
+ want_layout:1;
+};
+
+extern struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx);
+
+#endif /* CMD_H */