scripts: make config_add_* parameters take multiple arguments
[project/netifd.git] / scripts / utils.sh
1 append() {
2         local var="$1"
3         local value="$2"
4         local sep="${3:- }"
5
6         eval "export -- \"$var=\${$var:+\${$var}\${value:+\$sep}}\$value\""
7 }
8
9 add_default_handler() {
10         case "$(type $1 2>/dev/null)" in
11                 *function*) return;;
12                 *) eval "$1() { return; }"
13         esac
14 }
15
16 _config_add_generic() {
17         local type="$1"; shift
18
19         for name in "$@"; do
20                 json_add_array ""
21                 json_add_string "" "$name"
22                 json_add_int "" "$type"
23                 json_close_array
24         done
25 }
26
27 config_add_int() {
28         _config_add_generic 5 "$@"
29 }
30
31 config_add_array() {
32         _config_add_generic 1 "$@"
33 }
34
35 config_add_string() {
36         _config_add_generic 3 "$@"
37 }
38
39 config_add_boolean() {
40         _config_add_generic 7 "$@"
41 }