#ifndef COMMANDS_H
#define COMMANDS_H
#include <drivers/screen.h>
#include <libc/string.h>
// commands
void help() { printf("\nHelp\n"); color_print("echo: Prints text on the screen.\nclear: Clears the screen.", BLUE_COL); }
void clear(){ clear_screen(); reset_screen(); }
void echo(char *argg){ printf("\n"); printf(argg); }
// Commands with names
struct {
char *name;
void (*func)();
} function_map [] = {
{ "help", help },
{ "clear", clear },
{ "echo", echo },
};
// run command with name
int run_command(char *name)
{
int i;
for (i = 0; i < (sizeof(function_map) / sizeof(function_map[0])); i++) {
if (!strcmp(function_map[i].name, name) && function_map[i].func) {
function_map[i].func();
return 0;
}
}
// if command not found log error
color_print("\nCommand ",RED_COL);
color_print(name, RED_COL);
color_print(" not found. \n Type help to see all commands.", RED_COL);
}
#endif // COMMANDS_H