summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-03-07 09:24:40 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2014-03-07 09:24:40 +0100
commit4df69d0b6e79a6c0633921117803802c24020cc3 (patch)
tree6bc294cb3eb8769fe584c72a63d5630999838c47 /commands
parentfbf087808b55b542101654fe838c2db131aa9660 (diff)
parent66a1d213e04748a77170374c35f21f5b176837de (diff)
downloadbarebox-4df69d0b6e79a6c0633921117803802c24020cc3.tar.gz
barebox-4df69d0b6e79a6c0633921117803802c24020cc3.tar.xz
Merge branch 'for-next/env'
Diffstat (limited to 'commands')
-rw-r--r--commands/dfu.c10
-rw-r--r--commands/loadenv.c37
2 files changed, 37 insertions, 10 deletions
diff --git a/commands/dfu.c b/commands/dfu.c
index 6bd43e45c8..99a381f18a 100644
--- a/commands/dfu.c
+++ b/commands/dfu.c
@@ -60,11 +60,14 @@ static int dfu_do_parse_one(char *partstr, char **endstr, struct usb_dfu_dev *df
case PARSE_FLAGS:
switch (*partstr) {
case 's':
- dfu->flags |= DFU_FLAG_SAVE;
+ dfu->flags |= DFU_FLAG_SAFE;
break;
case 'r':
dfu->flags |= DFU_FLAG_READBACK;
break;
+ case 'c':
+ dfu->flags |= DFU_FLAG_CREATE;
+ break;
default:
return -EINVAL;
}
@@ -170,9 +173,10 @@ BAREBOX_CMD_HELP_OPT ("-p <str>", "product string\n")
BAREBOX_CMD_HELP_OPT ("-V <id>", "vendor id\n")
BAREBOX_CMD_HELP_OPT ("-P <id>", "product id\n")
BAREBOX_CMD_HELP_OPT ("<description>",
- "device1(name1)[sr],device2(name2)[sr]\n"
+ "device1(name1)[sr],device2(name2)[src]\n"
"'s' means 'safe mode' (download the complete image before flashing) and\n"
- "'r' that readback of the firmware is allowed.\n")
+ "'r' that readback of the firmware is allowed.\n"
+ "'c' if given, the file will be created (for use with regular files)\n")
BAREBOX_CMD_HELP_END
/**
diff --git a/commands/loadenv.c b/commands/loadenv.c
index bad88948a2..7b93e86892 100644
--- a/commands/loadenv.c
+++ b/commands/loadenv.c
@@ -26,15 +26,17 @@
#include <envfs.h>
#include <errno.h>
#include <fs.h>
+#include <malloc.h>
static int do_loadenv(int argc, char *argv[])
{
- char *filename, *dirname;
+ char *filename = NULL, *dirname;
unsigned flags = 0;
int opt;
int scrub = 0;
+ int defaultenv = 0;
- while ((opt = getopt(argc, argv, "ns")) > 0) {
+ while ((opt = getopt(argc, argv, "nsd")) > 0) {
switch (opt) {
case 'n':
flags |= ENV_FLAG_NO_OVERWRITE;
@@ -42,6 +44,9 @@ static int do_loadenv(int argc, char *argv[])
case 's':
scrub = 1;
break;
+ case 'd':
+ defaultenv = 1;
+ break;
default:
return COMMAND_ERROR_USAGE;
}
@@ -52,10 +57,24 @@ static int do_loadenv(int argc, char *argv[])
else
dirname = argv[optind + 1];
- if (argc - optind < 1)
+ if (argc - optind < 1) {
filename = default_environment_path_get();
- else
- filename = argv[optind];
+ } else {
+ char *str = normalise_path(argv[optind]);
+
+ /*
+ * /dev/defaultenv use to contain the defaultenvironment.
+ * we do not have this file anymore, but maintain compatibility
+ * to the 'loadenv -s /dev/defaultenv' command to restore the
+ * default environment for some time.
+ */
+ if (!strcmp(str, "/dev/defaultenv"))
+ defaultenv = 1;
+ else
+ filename = argv[optind];
+
+ free(str);
+ }
if (scrub) {
int ret;
@@ -75,15 +94,19 @@ static int do_loadenv(int argc, char *argv[])
}
}
- printf("loading environment from %s\n", filename);
+ printf("loading environment from %s\n", defaultenv ? "defaultenv" : filename);
- return envfs_load(filename, dirname, flags);
+ if (defaultenv)
+ return defaultenv_load(dirname, flags);
+ else
+ return envfs_load(filename, dirname, flags);
}
BAREBOX_CMD_HELP_START(loadenv)
BAREBOX_CMD_HELP_USAGE("loadenv OPTIONS [ENVFS] [DIRECTORY]\n")
BAREBOX_CMD_HELP_OPT("-n", "do not overwrite existing files\n")
BAREBOX_CMD_HELP_OPT("-s", "scrub old environment\n")
+BAREBOX_CMD_HELP_OPT("-d", "load default environment\n")
BAREBOX_CMD_HELP_SHORT("Load environment from ENVFS into DIRECTORY (default: /dev/env0 -> /env).\n")
BAREBOX_CMD_HELP_END