2025-02-16 12:16:19 +01:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
2025-02-16 11:09:01 +01:00
|
|
|
#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;
|
2025-02-16 12:11:43 +01:00
|
|
|
const char *version;
|
2025-02-16 11:09:01 +01:00
|
|
|
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
|