utils.sh 761 B

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