CE change environment variables syntax, sdutil Add help command
This commit is contained in:
18
ce/interp.c
18
ce/interp.c
@@ -424,20 +424,24 @@ static void execute_cmd (struct ast_cmd* cmd, struct context* context) {
|
||||
|
||||
int pgid = get_procgroup (pid);
|
||||
|
||||
for (int i = 0; i < cmd->arg_count; i++) {
|
||||
int i = 0;
|
||||
while (i < cmd->arg_count) {
|
||||
char* arg = cmd->args[i];
|
||||
char *key, *value;
|
||||
|
||||
char* sep = strchr (arg, '=');
|
||||
if (arg[0] == '-') {
|
||||
key = &arg[1];
|
||||
|
||||
if (sep != NULL) {
|
||||
*sep = '\0';
|
||||
|
||||
key = arg;
|
||||
value = sep + 1;
|
||||
if (i < cmd->arg_count - 1) {
|
||||
value = cmd->args[++i];
|
||||
} else {
|
||||
value = "yes";
|
||||
}
|
||||
|
||||
env_set (pgid, key, value, strlen (value) + 1);
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
struct cmd_write_proc_ctx wpctx = {.pgid = pgid, .cancel_pid = pid};
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
#include <list.h>
|
||||
|
||||
#define TOKEN_MAX 64
|
||||
#define CMD_ARGS_MAX 64
|
||||
#define TOKEN_MAX 128
|
||||
#define CMD_ARGS_MAX 128
|
||||
|
||||
#define TOKEN_CLASS_OPAREN 0
|
||||
#define TOKEN_CLASS_CPAREN 1
|
||||
|
||||
@@ -182,6 +182,12 @@ void app_main (void) {
|
||||
char devnamebuf[64];
|
||||
memset (devnamebuf, 0, sizeof (devnamebuf));
|
||||
|
||||
if (env_get (process_get_pgid (), "help", (void*)commandbuf, sizeof (commandbuf)) == ST_OK) {
|
||||
mprintf ("sdutil -C command -dev device_key\n");
|
||||
mprintf ("commands: part_dos, list_part_dos, format_fat32, format_fat16\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (env_get (process_get_pgid (), "C", (void*)commandbuf, sizeof (commandbuf)) != ST_OK) {
|
||||
mprintf ("ERROR C=???. No command provided\n");
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user