implement help command

This commit is contained in:
Aurel Feer 2022-06-01 17:01:45 +02:00
parent be08ca06be
commit ea71de7c8b
2 changed files with 26 additions and 11 deletions

View File

@ -109,17 +109,16 @@ static size_t aos_terminal_write(const char *buf, size_t len)
if(len == 0) return 0;
struct aos_rpc *rpc = aos_rpc_get_serial_channel();
if (rpc == NULL) {
debug_printf("[aos_terminal_write] RPC NOT YET INITIALIZED: %.*s\n", len, buf);
USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called.");
}
for (int i = 0; i < len; ++i) {
err = aos_rpc_serial_putchar(rpc, buf[i]);
if (err_is_fail(err)) return err;
}
return SYS_ERR_OK;
// if (rpc == NULL) {
// debug_printf("[aos_terminal_write] RPC NOT YET INITIALIZED: %.*s\n", len, buf);
// USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called.");
// }
// return aos_rpc_serial_write(rpc, buf, len);
}
@ -129,6 +128,10 @@ static size_t aos_terminal_read(char *buf, size_t len)
if(len == 0) return 0;
struct aos_rpc *rpc = aos_rpc_get_serial_channel();
if (rpc == NULL) {
debug_printf("[aos_terminal_read] RPC NOT YET INITIALIZED: %.*s\n", len, buf);
USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called.");
}
for (int i = 0; i < len; ++i) {
char in;
err = aos_rpc_serial_getchar(rpc, &in);
@ -137,12 +140,6 @@ static size_t aos_terminal_read(char *buf, size_t len)
}
return SYS_ERR_OK;
// if (rpc == NULL) {
// debug_printf("[aos_terminal_read] RPC NOT YET INITIALIZED: %.*s\n", len, buf);
// USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called.");
// }
// return aos_rpc_serial_read(rpc, buf, len);
}

View File

@ -12,6 +12,22 @@ static void parse_cmd_line(char * line, int * argc, char ** argv) {
}
}
static errval_t shelly_cmd_help(char * line) {
errval_t err;
err = shelly_write_str("commands implemented:\n\r");
if (err_is_fail(err)) return err;
err = shelly_write_str("- echo\n\r");
if (err_is_fail(err)) return err;
err = shelly_write_str("- run\n\r");
if (err_is_fail(err)) return err;
err = shelly_write_str("- ps\n\r");
if (err_is_fail(err)) return err;
err = shelly_write_str("- help\n\r");
if (err_is_fail(err)) return err;
return SYS_ERR_OK;
}
static errval_t shelly_cmd_echo(char * line) {
errval_t err;
err = shelly_write_str(line);
@ -75,6 +91,8 @@ static errval_t handle_shelly_cmd(char* line, size_t len) {
return shelly_cmd_run(remaining_line);
} else if (strcmp(cmd, "ps") == 0) {
return shelly_cmd_ps(remaining_line);
} else if (strcmp(cmd, "help") == 0) {
return shelly_cmd_help(remaining_line);
} else {
char buf[256];
snprintf(buf, 256, "unknown command \"%s\"\n\r", cmd);