summaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/functions.sh
diff options
context:
space:
mode:
authorOldřich Jedlička <oldium.pro@gmail.com>2020-11-08 16:15:04 +0100
committerPaul Spooren <mail@aparcar.org>2021-01-01 10:23:56 -1000
commit49d678f0d29405883e0789297a476154eef18ec5 (patch)
treefd2574e30d407399d54879a7bac98e1e4e471a74 /package/base-files/files/lib/functions.sh
parent0f14aec8fcdc0863326b9d8a62c50e1682621607 (diff)
downloadopenwrt-49d678f0d29405883e0789297a476154eef18ec5.tar.gz
openwrt-49d678f0d29405883e0789297a476154eef18ec5.tar.bz2
openwrt-49d678f0d29405883e0789297a476154eef18ec5.zip
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@gmail.com>
Diffstat (limited to 'package/base-files/files/lib/functions.sh')
-rwxr-xr-xpackage/base-files/files/lib/functions.sh17
1 files changed, 12 insertions, 5 deletions
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"
}