diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2016-08-03 08:08:23 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-08-03 08:08:23 +0200 |
commit | 94b1e5a321180a9140557642f63383a09d7c9ce5 (patch) | |
tree | 4db547184fda66a2da758c7a86a079ce16782ab6 /commands | |
parent | 7a51da5ff1e2b2c9397d781d04d0165371e80c6c (diff) | |
parent | e844f9c60d1e13f28bdb1ed95102df1e6df44faa (diff) | |
download | barebox-94b1e5a321180a9140557642f63383a09d7c9ce5.tar.gz barebox-94b1e5a321180a9140557642f63383a09d7c9ce5.tar.xz |
Merge branch 'for-next/nv'
Diffstat (limited to 'commands')
-rw-r--r-- | commands/nv.c | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/commands/nv.c b/commands/nv.c index 8cebb856f4..a1fb095a16 100644 --- a/commands/nv.c +++ b/commands/nv.c @@ -26,20 +26,26 @@ static int do_nv(int argc, char *argv[]) { int opt; - int do_remove = 0; - int ret; + int do_remove = 0, do_save = 0; + int ret, i; char *value; - while ((opt = getopt(argc, argv, "r")) > 0) { + while ((opt = getopt(argc, argv, "rs")) > 0) { switch (opt) { case 'r': do_remove = 1; break; + case 's': + do_save = 1; + break; default: return COMMAND_ERROR_USAGE; } } + if (do_save) + return nvvar_save(); + if (argc == optind) { nvvar_print(); return 0; @@ -48,19 +54,21 @@ static int do_nv(int argc, char *argv[]) argc -= optind; argv += optind; - if (argc != 1) + if (argc < 1) return COMMAND_ERROR_USAGE; - value = strchr(argv[0], '='); - if (value) { - *value = 0; - value++; - } + for (i = 0; i < argc; i++) { + value = strchr(argv[0], '='); + if (value) { + *value = 0; + value++; + } - if (do_remove) - ret = nvvar_remove(argv[0]); - else - ret = nvvar_add(argv[0], value); + if (do_remove) + ret = nvvar_remove(argv[i]); + else + ret = nvvar_add(argv[i], value); + } return ret; } @@ -68,17 +76,18 @@ static int do_nv(int argc, char *argv[]) BAREBOX_CMD_HELP_START(nv) BAREBOX_CMD_HELP_TEXT("Add a new non volatile variable named VAR, optionally set to VALUE.") BAREBOX_CMD_HELP_TEXT("non volatile variables are persistent variables that overwrite the") -BAREBOX_CMD_HELP_TEXT("global variables of the same name. Their value is saved with") -BAREBOX_CMD_HELP_TEXT("'saveenv'.") +BAREBOX_CMD_HELP_TEXT("global variables of the same name. Their value is saved implicitly with") +BAREBOX_CMD_HELP_TEXT("'saveenv' or explicitly with 'nv -s'") BAREBOX_CMD_HELP_TEXT("") BAREBOX_CMD_HELP_TEXT("Options:") -BAREBOX_CMD_HELP_OPT("-r", "remove a non volatile variable") +BAREBOX_CMD_HELP_OPT("-r", "remove non volatile variables") +BAREBOX_CMD_HELP_OPT("-s", "Save NV variables") BAREBOX_CMD_HELP_END BAREBOX_CMD_START(nv) .cmd = do_nv, BAREBOX_CMD_DESC("create or set non volatile variables") - BAREBOX_CMD_OPTS("[-r] VAR[=VALUE]") + BAREBOX_CMD_OPTS("[-r] VAR[=VALUE] ...") BAREBOX_CMD_GROUP(CMD_GRP_ENV) BAREBOX_CMD_HELP(cmd_nv_help) BAREBOX_CMD_END |