add: color cmd

This commit is contained in:
2024-09-25 22:25:43 +02:00
parent 02059bff33
commit 484e013ceb
3 changed files with 88 additions and 1 deletions

View File

@ -0,0 +1,36 @@
#include "kprintf.h"
#include "string.h"
#include "terminal.h"
#include <stdint.h>
#define ARRAY_SIZE(array) sizeof(array) / sizeof(array[0])
void color_cmd(char *arg)
{
uint8_t tmp_color;
static const char *colors[] = {
"BLACK", "BLUE", "GREEN", "CYAN",
"RED", "MAGENTA", "BROWN", "LIGHT_GREY",
"DARK_GREY", "LIGHT_BLUE", "LIGHT_GREEN", "LIGHT_CYAN",
"LIGHT_RED", "LIGHT_MAGENTA", "LIGHT_YELLOW", "WHITE",
};
for (size_t i = 0; i < ARRAY_SIZE(colors); i++) {
if (strcmp(colors[i], arg) == 0) {
terminal_change_default_fg_color(i);
return;
}
}
tmp_color = terminal_get_default_color();
kprintf(KERN_WARNING "Invalid argument\navailable color: ");
for (size_t i = 0; i < ARRAY_SIZE(colors); i++) {
terminal_set_default_fg_color(i);
// Unai the STRING MERGE argument of kprintf cause me a
// cramptissue. I lost all my skibidi aura to fix it but it work
// (;
kprintf(colors[i]);
if (i != ARRAY_SIZE(colors) - 1)
kprintf(", ");
}
terminal_set_default_fg_color(tmp_color);
kprintf("\n");
}