]> git.sur5r.net Git - ngadmin/blob - cli/commands.h
Let commands handle themselves absence of arguments
[ngadmin] / cli / commands.h
1
2 #ifndef DEF_COMMANDS
3 #define DEF_COMMANDS
4
5
6 #include "common.h"
7
8
9 struct TreeNode {
10         const char *name;
11         bool (* const comfunc)(int, const char**, struct ngadmin*);
12         const struct TreeNode *sub;
13 };
14
15
16 #define COM_ROOT_START(v)       const struct TreeNode v = {.name = "<root>", .comfunc = NULL, .sub = (const struct TreeNode[]){
17 #define COM_ROOT_END            {.name = NULL, .comfunc = NULL, .sub = NULL}}};
18 #define COM_START(nam)          {.name = #nam, .comfunc = NULL, .sub = (const struct TreeNode[]){
19 #define COM_END                 {.name = NULL, .comfunc = NULL, .sub = NULL}}},
20 #define COM_TERM(nam, func)     {.name = #nam, .comfunc = func, .sub = NULL},
21
22
23 extern const struct TreeNode commands;
24
25
26 #endif
27