v-list-web-domain 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #!/bin/bash
  2. # info: list web domain parameters
  3. # options: USER DOMAIN [FORMAT]
  4. #
  5. # The function to obtain web domain parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. domain=$2
  12. format=${3-shell}
  13. # Includes
  14. source $HESTIA/func/main.sh
  15. # JSON list function
  16. json_list() {
  17. echo '{'
  18. echo ' "'$DOMAIN'": {
  19. "IP": "'$IP'",
  20. "IP6": "'$IP6'",
  21. "U_DISK": "'$U_DISK'",
  22. "U_BANDWIDTH": "'$U_BANDWIDTH'",
  23. "TPL": "'$TPL'",
  24. "ALIAS": "'$ALIAS'",
  25. "STATS": "'$STATS'",
  26. "STATS_USER": "'$STATS_USER'",
  27. "SSL": "'$SSL'",
  28. "SSL_FORCE": "'$SSL_FORCE'",
  29. "SSL_HSTS": "'$SSL_HSTS'",
  30. "SSL_HOME": "'$SSL_HOME'",
  31. "LETSENCRYPT": "'$LETSENCRYPT'",
  32. "FTP_USER": "'$FTP_USER'",
  33. "FTP_PATH": "'$FTP_PATH'",
  34. "AUTH_USER": "'$AUTH_USER'",
  35. "BACKEND": "'$BACKEND'",
  36. "PROXY": "'$PROXY'",
  37. "PROXY_EXT": "'$PROXY_EXT'",
  38. "DOCUMENT_ROOT": "'$HOMEDIR/$user/web/$domain/public_html'",
  39. "SUSPENDED": "'$SUSPENDED'",
  40. "TIME": "'$TIME'",
  41. "DATE": "'$DATE'"
  42. }'
  43. echo '}'
  44. }
  45. # SHELL list function
  46. shell_list() {
  47. source $HESTIA/conf/hestia.conf
  48. echo "DOMAIN: $DOMAIN"
  49. echo "ALIAS: ${ALIAS//,/ }"
  50. echo "IP: $IP"
  51. if [ ! -z "$IP6" ]; then
  52. echo "IP6: $IP6"
  53. fi
  54. if [ ! -z "$SSL" ] && [ "$SSL" != 'no' ]; then
  55. echo "SSL: $SSL / $SSL_HOME"
  56. if [ ! -z "$LETSENCRYPT" ] && [ "$LETSENCRYPT" != 'no' ]; then
  57. echo "LETSENCRYPT: $LETSENCRYPT"
  58. fi
  59. if [ ! -z "$SSL_FORCE" ]; then
  60. echo "SSL_FORCE: $SSL_FORCE"
  61. fi
  62. if [ ! -z "$SSL_HSTS" ]; then
  63. echo "SSL_HSTS: $SSL_HSTS"
  64. fi
  65. fi
  66. echo "TEMPLATE: $TPL"
  67. if [ ! -z "$WEB_BACKEND" ]; then
  68. echo "BACKEND: $BACKEND"
  69. fi
  70. if [ ! -z "$PROXY_SYSTEM" ]; then
  71. echo "PROXY: $PROXY"
  72. echo "PROXY EXT: ${PROXY_EXT//,/ }"
  73. fi
  74. if [ ! -z "$STATS" ]; then
  75. echo "STATS: $STATS"
  76. fi
  77. if [ ! -z "$FTP_USER" ]; then
  78. echo "FTP_USER: ${FTP_USER//,/, }"
  79. fi
  80. if [ ! -z "$AUTH_USER" ]; then
  81. echo "HTTP_AUTH: $AUTH_USER"
  82. fi
  83. echo "DISK: $U_DISK"
  84. echo "BW: $U_BANDWIDTH"
  85. echo "SUSPENDED: $SUSPENDED"
  86. echo "TIME: $TIME"
  87. echo "DATE: $DATE"
  88. }
  89. # PLAIN list function
  90. plain_list() {
  91. echo -ne "$DOMAIN\t$IP\t$IP6\t$U_DISK\t$U_BANDWIDTH\t$TPL\t"
  92. echo -ne "$ALIAS\t$STATS\t$STATS_USER\t$SSL\t$SSL_FORCE\t$SSL_HSTS\t$SSL_HOME\t,$LETSENCRYPT"
  93. echo -ne "$FTP_USER\t$FTP_PATH\t$AUTH_USER\t$BACKEND\t$PROXY\t"
  94. echo -e "$PROXY_EXT\t$SUSPENDED\t$TIME\t$DATE"
  95. }
  96. # CSV list function
  97. csv_list() {
  98. echo -n "DOMAIN,IP,IP6,U_DISK,U_BANDWIDTH,TPL,ALIAS,STATS,STATS_USER,SSL,"
  99. echo -n "SSL_FORCE,SSL_HSTS,SSL_HOME,LETSENCRYPT,FTP_USER,FTP_PATH,AUTH_USER,BACKEND,PROXY,PROXY_EXT,"
  100. echo "SUSPENDED,TIME,DATE"
  101. echo -n "$DOMAIN,$IP,$IP6,$U_DISK,$U_BANDWIDTH,$TPL,\"$ALIAS\",$STATS"
  102. echo -n "\"$STATS_USER\",$SSL,$SSL_FORCE,$SSL_HSTS,$SSL_HOME,$LETSENCRYPT,\"$FTP_USER\",\"$FTP_PATH\","
  103. echo -n "\"$AUTH_USER\",$BACKEND,$PROXY,\"$PROXY_EXT\",$SUSPENDED,$TIME,"
  104. echo "$DATE"
  105. }
  106. #----------------------------------------------------------#
  107. # Verifications #
  108. #----------------------------------------------------------#
  109. check_args '2' "$#" 'USER DOMAIN [FORMAT]'
  110. is_format_valid 'user' 'domain'
  111. is_object_valid 'user' 'USER' "$user"
  112. is_object_valid 'web' 'DOMAIN' "$domain"
  113. #----------------------------------------------------------#
  114. # Action #
  115. #----------------------------------------------------------#
  116. # Parsing domain
  117. eval $(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
  118. # Listing data
  119. case $format in
  120. json) json_list ;;
  121. plain) plain_list ;;
  122. csv) csv_list ;;
  123. shell) shell_list ;;
  124. esac
  125. #----------------------------------------------------------#
  126. # Hestia #
  127. #----------------------------------------------------------#
  128. exit