From ac646bb9632937f709fb62dd825f08b9f691a933 Mon Sep 17 00:00:00 2001 From: Marko Semet Date: Thu, 22 Apr 2021 21:51:25 +0200 Subject: [PATCH] Add bundle --- sysutils/bundle.c | 40 ++++++++++++++++++++++++++++++++++++++++ sysutils/echo.c | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 sysutils/bundle.c diff --git a/sysutils/bundle.c b/sysutils/bundle.c new file mode 100644 index 0000000..8875787 --- /dev/null +++ b/sysutils/bundle.c @@ -0,0 +1,40 @@ +#include +#include + + +typedef struct { + const char *name; + int (*main_func)(int argc, char **argv); +} COMMAND_DEFINE; +static COMMAND_DEFINE commands[]; + + +#define CBOOTBOX_INCLUDED_CALL +#include "echo.c" + +static COMMAND_DEFINE commands[] = { + { "echo", &echo_main }, + { 0, 0 } +}; + + +int main(int argc, char **argv) +{ + COMMAND_DEFINE* cmd; + if(argc <= 1) { + // TODO: Print help + abort(); + return -1; + } + else { + cmd = commands; + while(cmd->name != 0) { + if(strcmp(cmd->name, argv[1]) == 0) { + return cmd->main_func(argc - 1, &(argv[1])); + } + } + // TODO: Print help + abort(); + return -1; + } +} \ No newline at end of file diff --git a/sysutils/echo.c b/sysutils/echo.c index c2b6998..3fcbe60 100644 --- a/sysutils/echo.c +++ b/sysutils/echo.c @@ -3,7 +3,7 @@ #include "utils.h" -int echo_main(int argc, char **argv) +static int echo_main(int argc, char **argv) { // Init int add_newline;