v-list-mail-account 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #!/bin/bash
  2. # info: list mail domain account
  3. # options: USER DOMAIN ACCOUNT [FORMAT]
  4. #
  5. # The function of obtaining the list of account parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. domain=$2
  12. account=$3
  13. format=${4-shell}
  14. # Includes
  15. source $VESTA/func/main.sh
  16. # JSON list function
  17. json_list() {
  18. echo '{'
  19. echo ' "'$account'": {
  20. "ALIAS": "'$ALIAS'",
  21. "FWD": "'$FWD'",
  22. "FWD_ONLY": "'$FWD_ONLY'",
  23. "AUTOREPLY": "'$AUTOREPLY'",
  24. "QUOTA": "'$QUOTA'",
  25. "U_DISK": "'$U_DISK'",
  26. "SUSPENDED": "'$SUSPENDED'",
  27. "TIME": "'$TIME'",
  28. "DATE": "'$DATE'"
  29. }'
  30. echo '}'
  31. }
  32. # SHELL list function
  33. shell_list() {
  34. echo "ACCOUNT: $account"
  35. echo "ALIAS: $ALIAS"
  36. echo "FORWARD: $FWD"
  37. echo "FORWARD_ONLY: $FWD_ONLY"
  38. echo "AUTOREPLY: $AUTOREPLY"
  39. echo "QUOTA: $QUOTA"
  40. echo "DISK: $U_DISK"
  41. echo "SUSPENDED: $SUSPENDED"
  42. echo "TIME: $TIME"
  43. echo "DATE: $DATE"
  44. }
  45. # PLAIN list function
  46. plain_list() {
  47. echo -ne "$account\t$ALIAS\t$FWD\t$FWD_ONLY\t$AUTOREPLY\t$QUOTA\t"
  48. echo -e "$U_DISK\t$SUSPENDED\t$TIME\t$DATE"
  49. }
  50. # CSV list function
  51. csv_list() {
  52. echo -n "ACCOUNT,ALIAS,FWD,FWD_ONLY,AUTOREPLY,QUOTA,U_DISK"
  53. echo "SUSPENDED,TIME,DATE"
  54. echo -n "$ACCOUNT,\"$ALIAS\",\"$FWD\",$FWD_ONLY,$AUTOREPLY,$QUOTA,"
  55. echo "$U_DISK,$SUSPENDED,$TIME,$DATE"
  56. }
  57. #----------------------------------------------------------#
  58. # Verifications #
  59. #----------------------------------------------------------#
  60. check_args '3' "$#" 'USER DOMAIN ACCOUNT [FORMAT]'
  61. is_format_valid 'user' 'domain' 'account'
  62. is_object_valid 'user' 'USER' "$user"
  63. is_object_valid 'mail' 'DOMAIN' "$domain"
  64. is_object_valid "mail/$domain" 'ACCOUNT' "$account"
  65. #----------------------------------------------------------#
  66. # Action #
  67. #----------------------------------------------------------#
  68. # Parsing mail account
  69. eval $(grep "ACCOUNT='$account'" $USER_DATA/mail/$domain.conf)
  70. # Listing data
  71. case $format in
  72. json) json_list ;;
  73. plain) plain_list ;;
  74. csv) csv_list ;;
  75. shell) shell_list ;;
  76. esac
  77. #----------------------------------------------------------#
  78. # Vesta #
  79. #----------------------------------------------------------#
  80. exit