Forked from
Distributed Autonomous Networked Control Lab / MicroCART
1869 commits behind, 175 commits ahead of the upstream repository.
-
Jake Drahos authoredJake Drahos authored
cli.c 998 B
#include <stdio.h>
#include <string.h>
#include <err.h>
#include <libgen.h>
#include "cli.h"
int main(int argc, char **argv)
{
int cmdID = -1;
char * command;
int i , useSymlink = 0;
struct backend_conn *conn;
command = basename(argv[0]);
for(i = 0; i < MAX_COMMANDS; ++i) {
if (strncmp(command, commandNames[i], strlen(commandNames[i])) == 0)
{
cmdID = i;
useSymlink = 1;
}
}
if(cmdID == -1) {
command = argv[1];
for(i = 0; i < MAX_COMMANDS; ++i) {
if (strncmp(command, commandNames[i], strlen(commandNames[i])) == 0)
{
cmdID = i;
}
}
}
if(cmdID == -1){
printf("Could not match input with a command. Please try again...\n");
return -1;
}
printf("Parsed Command : %s\n", commandNames[cmdID]);
conn = ucart_backendConnect();
if(conn == NULL) {
return -1;
}
if(useSymlink) {
(*cli_functions[cmdID]) (conn, argc, &argv[0]);
}else {
(*cli_functions[cmdID]) (conn, argc-1, &argv[1]);
}
ucart_backendDisconnect(conn);
return 0;
}