v-list-mail-domains 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/bin/bash
  2. # info: list mail domains
  3. # options: USER [FORMAT]
  4. #
  5. # The function of obtaining the list of all user 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/mail.conf |wc -l)
  19. echo "{"
  20. while read str; do
  21. eval $str
  22. echo -n ' "'$DOMAIN'": {
  23. "ANTIVIRUS": "'$ANTIVIRUS'",
  24. "ANTISPAM": "'$ANTISPAM'",
  25. "DKIM": "'$DKIM'",
  26. "CATCHALL": "'$CATCHALL'",
  27. "ACCOUNTS": "'$ACCOUNTS'",
  28. "U_DISK": "'$U_DISK'",
  29. "SUSPENDED": "'$SUSPENDED'",
  30. "TIME": "'$TIME'",
  31. "DATE": "'$DATE'"
  32. }'
  33. if [ "$i" -lt "$objects" ]; then
  34. echo ','
  35. else
  36. echo
  37. fi
  38. ((i++))
  39. done < <(cat $USER_DATA/mail.conf)
  40. echo '}'
  41. }
  42. # SHELL list function
  43. shell_list() {
  44. IFS=$'\n'
  45. echo "DOMAIN ANTIVIRUS ANTISPAM DKIM ACC DISK SPND DATE"
  46. echo "------ --------- -------- ---- --- ---- --- ----"
  47. while read str; do
  48. eval $str
  49. echo -n "$DOMAIN $ANTIVIRUS $ANTISPAM $DKIM $ACCOUNTS $U_DISK "
  50. echo "$SUSPENDED $DATE"
  51. done < <(cat $USER_DATA/mail.conf)
  52. }
  53. # PLAIN list function
  54. plain_list() {
  55. IFS=$'\n'
  56. while read str; do
  57. eval $str
  58. echo -ne "$DOMAIN\t$ANTIVIRUS\t$ANTISPAM\t$DKIM\t$CATCHALL\t"
  59. echo -e "$ACCOUNTS\t$U_DISK\t$SUSPENDED\t$TIME\t$DATE"
  60. done < <(cat $USER_DATA/mail.conf)
  61. }
  62. # CSV list function
  63. csv_list() {
  64. IFS=$'\n'
  65. echo -n "DOMAIN,ANTIVIRUS,ANTISPAM,DKIM,CATCHALL,ACCOUNTS,U_DISK,"
  66. echo "SUSPENDED,TIME,DATE"
  67. while read str; do
  68. eval $str
  69. echo -n "$DOMAIN,$ANTIVIRUS,$ANTISPAM,$DKIM,$CATCHALL,$ACCOUNTS,"
  70. echo "'$U_DISK,$SUSPENDED,$TIME,$DATE"
  71. echo
  72. done < <(cat $USER_DATA/mail.conf)
  73. }
  74. #----------------------------------------------------------#
  75. # Verifications #
  76. #----------------------------------------------------------#
  77. check_args '1' "$#" 'USER [FORMAT]'
  78. is_format_valid 'user'
  79. is_object_valid 'user' 'USER' "$user"
  80. #----------------------------------------------------------#
  81. # Action #
  82. #----------------------------------------------------------#
  83. # Listing data
  84. case $format in
  85. json) json_list ;;
  86. plain) plain_list ;;
  87. csv) csv_list ;;
  88. shell) shell_list |column -t ;;
  89. esac
  90. #----------------------------------------------------------#
  91. # Vesta #
  92. #----------------------------------------------------------#
  93. exit