diff options
| author | John Crispin | 2024-09-17 12:36:13 +0000 |
|---|---|---|
| committer | John Crispin | 2024-10-02 13:41:33 +0000 |
| commit | 84577e48bcfac9e9f12835ecf13a5e0ba2f71be2 (patch) | |
| tree | ab4326d2cacc2cb7f2b32d1d5775c1d9a940ca76 | |
| parent | 7a120ee72e06217d87dfdff819052a84db32fd2b (diff) | |
| download | openwrt-84577e48bcfac9e9f12835ecf13a5e0ba2f71be2.tar.gz | |
uboot-envtools: add fw_loadenv tool
This tool will load the uboot environment to /var/run/uboot-env/. This allows
more efficient use when accessing multiple variables.
Signed-off-by: John Crispin <john@phrozen.org>
| -rw-r--r-- | package/boot/uboot-envtools/Makefile | 1 | ||||
| -rw-r--r-- | package/boot/uboot-envtools/files/fw_loadenv | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/package/boot/uboot-envtools/Makefile b/package/boot/uboot-envtools/Makefile index 19c3073c74..875afad554 100644 --- a/package/boot/uboot-envtools/Makefile +++ b/package/boot/uboot-envtools/Makefile @@ -71,6 +71,7 @@ define Package/uboot-envtools/install $(LN) fw_printenv $(1)/usr/sbin/fw_setenv $(INSTALL_BIN) ./files/fw_printsys $(1)/usr/sbin $(INSTALL_BIN) ./files/fw_setsys $(1)/usr/sbin + $(INSTALL_BIN) ./files/fw_loadenv $(1)/usr/sbin $(INSTALL_DIR) $(1)/lib $(INSTALL_DATA) ./files/uboot-envtools.sh $(1)/lib $(INSTALL_DIR) $(1)/etc/uci-defaults diff --git a/package/boot/uboot-envtools/files/fw_loadenv b/package/boot/uboot-envtools/files/fw_loadenv new file mode 100644 index 0000000000..9fe302ce89 --- /dev/null +++ b/package/boot/uboot-envtools/files/fw_loadenv @@ -0,0 +1,26 @@ +#!/usr/bin/ucode + +'use strict'; + +const path = '/var/run/uboot-env/'; + +import * as fs from 'fs'; + +if (fs.lsdir(path)) { + warn(`env has already been loaded to ${path}\n`); + exit(0); +} + +let fp = fs.popen('fw_printenv'); +let raw = fp.read('all'); +fp.close(); + +if (!length(raw)) + exit(0); + +fs.mkdir(path); +for (let line in split(raw, '\n')) { + let vals = split(line, '='); + if (vals[0] && vals[1]) + fs.writefile(path + vals[0], vals[1]); +} |