add: color cmd
This commit is contained in:
36
src/shell/commands/color_cmd.c
Normal file
36
src/shell/commands/color_cmd.c
Normal 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");
|
||||
}
|
Reference in New Issue
Block a user