diff options
Diffstat (limited to 'package/base-files/files/etc/functions.sh')
-rwxr-xr-x | package/base-files/files/etc/functions.sh | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/package/base-files/files/etc/functions.sh b/package/base-files/files/etc/functions.sh index 828e37e404..efa378f006 100755 --- a/package/base-files/files/etc/functions.sh +++ b/package/base-files/files/etc/functions.sh @@ -134,22 +134,25 @@ config_clear() { done } +# config_get <variable> <section> <option> [<default>] +# config_get <section> <option> config_get() { case "$3" in - "") eval "echo \"\${CONFIG_${1}_${2}}\"";; - *) eval "export ${NO_EXPORT:+-n} -- \"$1=\${CONFIG_${2}_${3}}\"";; + "") eval echo "\${CONFIG_${1}_${2}:-\${4}}";; + *) eval export ${NO_EXPORT:+-n} -- "${1}=\${CONFIG_${2}_${3}:-\${4}}";; esac } # config_get_bool <variable> <section> <option> [<default>] config_get_bool() { local _tmp - config_get "_tmp" "$2" "$3" + config_get _tmp "$2" "$3" "$4" case "$_tmp" in - 1|on|true|enabled) export ${NO_EXPORT:+-n} "$1=1";; - 0|off|false|disabled) export ${NO_EXPORT:+-n} "$1=0";; - *) eval "$1=$4";; + 1|on|true|enabled) _tmp=1;; + 0|off|false|disabled) _tmp=0;; + *) _tmp="$4";; esac + export ${NO_EXPORT:+-n} "$1=$_tmp" } config_set() { |