40 lines
626 B
C
40 lines
626 B
C
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
}
|