v-list-dns-domains 2.7 KB

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