v-list-web-domain 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. # info: list web domain
  3. # options: user domain [format]
  4. #
  5. # The function of obtaining the list of domain parameters. This call, just as
  6. # all v_list_* calls, supports 3 formats - json, shell and plain.
  7. #----------------------------------------------------------#
  8. # Variable&Function #
  9. #----------------------------------------------------------#
  10. # Argument defenition
  11. user=$1
  12. domain=$2
  13. format=${3-shell}
  14. # Includes
  15. source $VESTA/func/main.sh
  16. # Json function
  17. json_list_domain() {
  18. i=1
  19. fileds_count=$(echo "$fields" | wc -w)
  20. line=$(grep "DOMAIN='$domain'" $conf)
  21. echo '{'
  22. eval $line
  23. for field in $fields; do
  24. eval value=$field
  25. if [ "$i" -eq 1 ]; then
  26. echo -e "\t\"$value\": {"
  27. else
  28. if [ "$fileds_count" -eq "$i" ]; then
  29. echo -e "\t\t\"${field//$/}\": \"$value\""
  30. else
  31. echo -e "\t\t\"${field//$/}\": \"$value\","
  32. fi
  33. fi
  34. (( ++i))
  35. done
  36. if [ -n "$value" ]; then
  37. echo -e ' }'
  38. fi
  39. echo -e "}"
  40. }
  41. # Shell function
  42. shell_list_domain() {
  43. line=$(grep "DOMAIN='$domain'" $conf)
  44. eval $line
  45. for field in $fields; do
  46. eval key="$field"
  47. if [ -z "$key" ]; then
  48. key='NULL'
  49. fi
  50. echo "${field//$/}: $key "
  51. done
  52. }
  53. #----------------------------------------------------------#
  54. # Verifications #
  55. #----------------------------------------------------------#
  56. check_args '2' "$#" 'user domain [format]'
  57. is_object_valid 'user' 'USER' "$user"
  58. is_object_valid 'web' 'DOMAIN' "$domain"
  59. #----------------------------------------------------------#
  60. # Action #
  61. #----------------------------------------------------------#
  62. # Defining config
  63. conf=$USER_DATA/web.conf
  64. # Defining fileds to select
  65. fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $CGI $ELOG $STATS
  66. $STATS_USER $SSL $SSL_HOME $FTP_USER $NGINX $NGINX_EXT $SUSPENDED $TIME $DATE'
  67. # Listing domains
  68. case $format in
  69. json) json_list_domain ;;
  70. plain) nohead=1; shell_list_domain ;;
  71. shell) shell_list_domain |column -t;;
  72. *) check_args '2' '0' 'user domain [format]'
  73. esac
  74. #----------------------------------------------------------#
  75. # Vesta #
  76. #----------------------------------------------------------#
  77. exit