[openwrt/openwrt] base-files: allow reusing of boolean value extraction logic

LEDE Commits lede-commits at lists.infradead.org
Fri Jan 1 15:24:29 EST 2021


aparcar pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/49d678f0d29405883e0789297a476154eef18ec5

commit 49d678f0d29405883e0789297a476154eef18ec5
Author: Oldřich Jedlička <oldium.pro at gmail.com>
AuthorDate: Sun Nov 8 16:15:04 2020 +0100

    base-files: allow reusing of boolean value extraction logic
    
    The `functions.sh` script has `config_get_bool()` function, which is
    usable when using UCI config direct access API, but there is no
    equivalent for the callback API. Introduce `get_bool()` function to
    allow reusing it from init scripts.
    
    Example:
    
    ```sh
    option_cb() {
        local option="$1"
        local value="$(get_bool "$2")"
        ...
    }
    ```
    
    Signed-off-by: Oldřich Jedlička <oldium.pro at gmail.com>
---
 package/base-files/Makefile               |  2 +-
 package/base-files/files/lib/functions.sh | 17 ++++++++++++-----
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 35a07f2aad..da3976424f 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
 include $(INCLUDE_DIR)/feeds.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=243
+PKG_RELEASE:=244
 PKG_FLAGS:=nonshared
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index ee4ad1af83..272e230db2 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -118,15 +118,22 @@ config_get() {
 	esac
 }
 
-# config_get_bool <variable> <section> <option> [<default>]
-config_get_bool() {
-	local _tmp
-	config_get _tmp "$2" "$3" "$4"
+# get_bool <value> [<default>]
+get_bool() {
+	local _tmp="$1"
 	case "$_tmp" in
 		1|on|true|yes|enabled) _tmp=1;;
 		0|off|false|no|disabled) _tmp=0;;
-		*) _tmp="$4";;
+		*) _tmp="$2";;
 	esac
+	echo -n "$_tmp"
+}
+
+# config_get_bool <variable> <section> <option> [<default>]
+config_get_bool() {
+	local _tmp
+	config_get _tmp "$2" "$3" "$4"
+	_tmp="$(get_bool "$_tmp" "$4")"
 	export ${NO_EXPORT:+-n} "$1=$_tmp"
 }
 



More information about the lede-commits mailing list