v-list-web-domain 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 $STATS $STATS_USER
  66. $SSL $SSL_HOME $FTP_USER $FTP_PATH $BACKEND $PROXY $PROXY_EXT
  67. $DOCUMENT_ROOT $SUSPENDED $TIME $DATE'
  68. # Defining document root
  69. DOCUMENT_ROOT="$HOMEDIR/$user/web/$domain/public_html"
  70. # Listing domains
  71. case $format in
  72. json) json_list_domain ;;
  73. plain) nohead=1; shell_list_domain ;;
  74. shell) shell_list_domain |column -t;;
  75. *) check_args '2' '0' 'USER DOMAIN [FORMAT]'
  76. esac
  77. #----------------------------------------------------------#
  78. # Vesta #
  79. #----------------------------------------------------------#
  80. exit