From 49d678f0d29405883e0789297a476154eef18ec5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Old=C5=99ich=20Jedli=C4=8Dka?= <oldium.pro@gmail.com>
Date: Sun, 8 Nov 2020 16:15:04 +0100
Subject: base-files: allow reusing of boolean value extraction logic
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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@gmail.com>
---
 package/base-files/files/lib/functions.sh | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

(limited to 'package/base-files/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"
 }
 
-- 
cgit v1.2.3