v-list-web-domains 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #!/bin/bash
  2. # info: list web domains
  3. # options: USER [FORMAT]
  4. #
  5. # The function to obtain the list of all user web domains.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. format=${2-shell}
  12. # Includes
  13. source $VESTA/func/main.sh
  14. # JSON list function
  15. json_list() {
  16. IFS=$'\n'
  17. i=1
  18. objects=$(grep DOMAIN $USER_DATA/web.conf |wc -l)
  19. echo "{"
  20. while read str; do
  21. eval $str
  22. echo -n ' "'$DOMAIN'": {
  23. "IP": "'$IP'",
  24. "IP6": "'$IP6'",
  25. "U_DISK": "'$U_DISK'",
  26. "U_BANDWIDTH": "'$U_BANDWIDTH'",
  27. "TPL": "'$TPL'",
  28. "ALIAS": "'$ALIAS'",
  29. "STATS": "'$STATS'",
  30. "STATS_USER": "'$STATS_USER'",
  31. "SSL": "'$SSL'",
  32. "SSL_HOME": "'$SSL_HOME'",
  33. "LETSENCRYPT": "'$LETSENCRYPT'",
  34. "FTP_USER": "'$FTP_USER'",
  35. "FTP_PATH": "'$FTP_PATH'",
  36. "AUTH_USER": "'$AUTH_USER'",
  37. "BACKEND": "'$BACKEND'",
  38. "PROXY": "'$PROXY'",
  39. "PROXY_EXT": "'$PROXY_EXT'",
  40. "SUSPENDED": "'$SUSPENDED'",
  41. "TIME": "'$TIME'",
  42. "DATE": "'$DATE'"
  43. }'
  44. if [ "$i" -lt "$objects" ]; then
  45. echo ','
  46. else
  47. echo
  48. fi
  49. ((i++))
  50. done < <(cat $USER_DATA/web.conf)
  51. echo '}'
  52. }
  53. # SHELL list function
  54. shell_list() {
  55. IFS=$'\n'
  56. echo "DOMAIN IP TPL SSL DISK BW SPND DATE"
  57. echo "------ -- --- --- ---- -- ---- -----"
  58. while read str; do
  59. eval $str
  60. echo "$DOMAIN $IP $TPL $SSL $U_DISK $U_BANDWIDTH $SUSPENDED $DATE"
  61. done < <(cat $USER_DATA/web.conf)
  62. }
  63. # PLAIN list function
  64. plain_list() {
  65. IFS=$'\n'
  66. while read str; do
  67. eval $str
  68. echo -ne "$DOMAIN\t$IP\t$IP6\t$U_DISK\t$U_BANDWIDTH\t$TPL\t"
  69. echo -ne "$ALIAS\t$STATS\t$STATS_USER\t$SSL\t$SSL_HOME\t$LETSENCRYPT\t"
  70. echo -ne "$FTP_USER\t$FTP_PATH\t$AUTH_USER\t$BACKEND\t$PROXY\t"
  71. echo -e "$PROXY_EXT\t$SUSPENDED\t$TIME\t$DATE"
  72. done < <(cat $USER_DATA/web.conf)
  73. }
  74. # CSV list function
  75. csv_list() {
  76. IFS=$'\n'
  77. echo -n "DOMAIN,IP,IP6,U_DISK,U_BANDWIDTH,TPL,ALIAS,STATS,STATS_USER,"
  78. echo -n "SSL,SSL_HOME,LETSENCRYPT,FTP_USER,FTP_PATH,AUTH_USER,BACKEND,PROXY,"
  79. echo "PROXY_EXT,SUSPENDED,TIME,DATE"
  80. while read str; do
  81. eval $str
  82. echo -n "$DOMAIN,$IP,$IP6,$U_DISK,$U_BANDWIDTH,$TPL,"
  83. echo -n "\"$ALIAS\",$STATS,\"$STATS_USER\",$SSL,$SSL_HOME,$LETSENCRYPT,"
  84. echo -n "\"$FTP_USER\",\"$FTP_PATH\",\"$AUTH_USER\",$BACKEND,$PROXY,"
  85. echo "\"$PROXY_EXT\",$SUSPENDED,$TIME,$DATE"
  86. done < <(cat $USER_DATA/web.conf)
  87. }
  88. #----------------------------------------------------------#
  89. # Verifications #
  90. #----------------------------------------------------------#
  91. check_args '1' "$#" 'USER [FORMAT]'
  92. is_object_valid 'user' 'USER' "$user"
  93. #----------------------------------------------------------#
  94. # Action #
  95. #----------------------------------------------------------#
  96. # Listing data
  97. case $format in
  98. json) json_list ;;
  99. plain) plain_list ;;
  100. csv) csv_list ;;
  101. shell) shell_list |column -t ;;
  102. esac
  103. #----------------------------------------------------------#
  104. # Vesta #
  105. #----------------------------------------------------------#
  106. exit