| /* This file is automatically generated from the documentation. EDIT AT YOUR OWN RISK. */ |
| |
| #ifndef CLI_H |
| #define CLI_H |
| |
| #include <stddef.h> |
| #include "tracee/tracee.h" |
| #include "attribute.h" |
| |
| typedef struct { |
| const char *name; |
| char separator; |
| const char *value; |
| } Argument; |
| |
| struct Cli; |
| typedef int (*option_handler_t)(Tracee *tracee, const struct Cli *cli, const char *value); |
| |
| typedef struct { |
| const char *class; |
| option_handler_t handler; |
| const char *description; |
| const char *detail; |
| Argument arguments[5]; |
| } Option; |
| |
| #define END_OF_OPTIONS { .class = NULL, \ |
| .arguments = {{ .name = NULL, .separator = '\0', .value = NULL }}, \ |
| .handler = NULL, \ |
| .description = NULL, \ |
| .detail = NULL \ |
| } |
| |
| typedef int (*initialization_hook_t)(Tracee *tracee, const struct Cli *cli, |
| size_t argc, char *const argv[], size_t cursor); |
| typedef struct Cli { |
| const char *name; |
| const char *version; |
| const char *subtitle; |
| const char *synopsis; |
| const char *colophon; |
| const char *logo; |
| |
| initialization_hook_t pre_initialize_bindings; |
| initialization_hook_t post_initialize_bindings; |
| initialization_hook_t pre_initialize_cwd; |
| initialization_hook_t post_initialize_cwd; |
| initialization_hook_t pre_initialize_exe; |
| initialization_hook_t post_initialize_exe; |
| void *private; |
| |
| const Option options[]; |
| } Cli; |
| |
| extern const Cli *get_proot_cli(TALLOC_CTX *context); |
| extern const Cli * WEAK get_care_cli(TALLOC_CTX *context); |
| |
| extern void print_usage(Tracee *tracee, const Cli *cli, bool detailed); |
| extern void print_version(const Cli *cli); |
| extern int parse_integer_option(const Tracee *tracee, int *variable, const char *value, const char *option); |
| extern const char *expand_front_variable(TALLOC_CTX *context, const char *string); |
| |
| extern bool exit_failure; |
| |
| #endif /* CLI_H */ |