luci.yggdrasil-jumper 791 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/sh
  2. . /usr/share/libubox/jshn.sh
  3. isInstalled() {
  4. [ -f /usr/sbin/yggdrasil-jumper ]
  5. }
  6. case "$1" in
  7. list)
  8. json_init
  9. json_add_object "isInstalled"
  10. json_close_object
  11. json_add_object "validateConfig"
  12. json_add_string "config"
  13. json_close_object
  14. json_dump
  15. ;;
  16. call)
  17. case "$2" in
  18. isInstalled)
  19. json_init
  20. json_add_boolean "isInstalled" "$(isInstalled && echo 1 || echo 0)"
  21. json_dump
  22. ;;
  23. validateConfig)
  24. read -r input
  25. json_load "$input"
  26. json_get_vars config
  27. output="Can't locate `yggdrasil-jumper`"
  28. isInstalled && \
  29. output="$(echo "$config" \
  30. | yggdrasil-jumper --validate --config - 2&>1 \
  31. | sed -E 's/(.{100}[^ ]*) /\1\n/g')"
  32. json_init
  33. json_add_string output "$output"
  34. json_dump
  35. ;;
  36. esac
  37. ;;
  38. esac