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 <j...@phrozen.org> --- package/boot/uboot-envtools/Makefile | 1 + package/boot/uboot-envtools/files/fw_loadenv | 26 ++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 package/boot/uboot-envtools/files/fw_loadenv 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]); +} -- 2.34.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel