diff options
Diffstat (limited to 'plugin.h')
-rw-r--r-- | plugin.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugin.h b/plugin.h new file mode 100644 index 0000000..03bd95a --- /dev/null +++ b/plugin.h @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#ifndef PLUGIN_H +#define PLUGIN_H + +#include <stdbool.h> + +struct program { + const char *name; + const char *version; + const char *usage; + const char *desc; + const char *more; + struct command **commands; + struct plugin *extensions; +}; + +struct plugin { + const char *name; + const char *desc; + const char *version; + struct command **commands; + struct program *parent; + struct plugin *next; + struct plugin *tail; +}; + +struct command { + char *name; + char *help; + int (*fn)(int argc, char **argv, struct command *command, struct plugin *plugin); + char *alias; +}; + +void general_help(struct plugin *plugin); +int handle_plugin(int argc, char **argv, struct plugin *plugin); + +#endif |