quark/src/kernel/shell.c

45 líneas
1 KiB
C
Original Vista normal Històric

2022-06-19 19:54:09 +02:00
#include "shell.h"
#include "lib/stdio.h"
#include "lib/string.h"
#include "lib/memory.h"
#include "drivers/uart.h"
2022-06-19 19:54:09 +02:00
int shell_run(char *cmd){
2022-06-20 14:17:13 +02:00
int ret = 0;
puts("\x1b[32m");
2022-06-20 18:06:05 +02:00
if(!strcmp(cmd, "hello")){
2022-06-19 19:54:09 +02:00
printf("Hello!\n");
}
2022-06-20 18:06:05 +02:00
else if(!strcmp(cmd, "version")){
2022-06-20 14:17:13 +02:00
printf("%s\n", OS_VERSION);
}
2022-06-20 18:06:05 +02:00
else if(!strcmp(cmd, "clear")){
2022-06-20 16:54:00 +02:00
clear_screen();
}
else if(!strcmp(cmd, "uart")){
uart_write(COM1, '\x1b');
uart_write(COM1, '[');
uart_write(COM1, '3');
uart_write(COM1, '2');
uart_write(COM1, 'm');
uart_write(COM1, 'H');
uart_write(COM1, 'E');
uart_write(COM1, 'L');
uart_write(COM1, 'L');
uart_write(COM1, 'O');
uart_write(COM1, '\n');
uart_write(COM1, '\x1b');
uart_write(COM1, '[');
uart_write(COM1, '0');
uart_write(COM1, 'm');
2022-06-22 15:12:17 +02:00
}
2022-06-19 19:54:09 +02:00
else{
printf("SHELL: Unknown command \"%s\"\n", cmd);
2022-06-20 14:17:13 +02:00
ret = 127;
2022-06-19 19:54:09 +02:00
}
2022-06-20 14:17:13 +02:00
puts("\x1b[0m");
return ret;
2022-06-19 19:54:09 +02:00
}