path: root/commands/loadenv.c
diff options
authorSascha Hauer <>2014-06-18 15:12:05 +0200
committerSascha Hauer <>2014-11-06 10:58:54 +0100
commit3249006a2facd31a072fd2808991697b4727643e (patch)
treeec4e5dd4fbd1ea124349a23cb3664bda4ba2e1aa /commands/loadenv.c
parentfe39e8aadc3e2f3d87bb5b6f8c6ebb4fb1a84253 (diff)
Add support for non volatile variables
This adds (back) support for non volatile variables. Non volatile variables are variables which are stored in the environment over reboot. They are used in the same way as the global variables, but with a 'nv' command and device. The variables are stored under /env/nv/, one variable per file. Adding a nv variable automatically adds a global variable with the same name. Changing a nv variable also changes the same global variable, but not the other way round. This allows for example to configure the username as: nv user=sha; saveenv Signed-off-by: Sascha Hauer <>
Diffstat (limited to 'commands/loadenv.c')
1 files changed, 8 insertions, 3 deletions
diff --git a/commands/loadenv.c b/commands/loadenv.c
index 8b15af4..91ce5e7 100644
--- a/commands/loadenv.c
+++ b/commands/loadenv.c
@@ -27,12 +27,13 @@
#include <errno.h>
#include <fs.h>
#include <malloc.h>
+#include <globalvar.h>
static int do_loadenv(int argc, char *argv[])
char *filename = NULL, *dirname;
unsigned flags = 0;
- int opt;
+ int opt, ret;
int scrub = 0;
int defaultenv = 0;
@@ -97,9 +98,13 @@ static int do_loadenv(int argc, char *argv[])
printf("loading environment from %s\n", defaultenv ? "defaultenv" : filename);
if (defaultenv)
- return defaultenv_load(dirname, flags);
+ ret = defaultenv_load(dirname, flags);
- return envfs_load(filename, dirname, flags);
+ ret = envfs_load(filename, dirname, flags);
+ nvvar_load();
+ return ret;