packages/net/freeswitch/files/uci/param_from_config.sh

60 lines
1.3 KiB
Bash
Raw Normal View History

#!/bin/sh
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
fs_parse_param_action() {
local cfg="$1"
local param_file="$2"
local param="$3"
local param_type="$4"
local default="$5"
local value
if [ -z "$default" ]; then
config_get value "$cfg" "$(echo $param|tr - _ )"
else
config_get value "$cfg" "$(echo $param|tr - _ )" "$default"
fi
if [ "$param_type" = "bool" ]; then
if [ "$value" = "0" ] || [ "$value" = "false" ] || [ "$value" = "no" ]; then
value="false"
elif [ "$value" = "1" ] || [ "$value" = "true" ] || [ "$value" = "yes" ]; then
value="true"
fi
fi
fs_set_param "$param_file" "$param" "$value"
}
fs_to_xml_param_list() {
local cfg="$1"
local param_list="$2"
local param_file="$3"
local i=0
local param
local default
local list_item
local param_type
echo "$param_list" | {
local list_item
read -t 1 list_item
while [ "$list_item" != '[FS-EOF]' ]; do
if [ $i -eq 0 ]; then
param="$list_item"
i=1
elif [ $i -eq 1 ]; then
param_type="$list_item"
i=2
else
default="$list_item"
fs_parse_param_action "$cfg" "$param_file" "$param" "$param_type" "$default"
i=0
fi
read -t 1 list_item
done
}
}