v-add-dns-on-web-alias 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/bash
  2. # info: add dns domain or dns record based on web domain alias restart
  3. # options: USER DOMAIN
  4. #
  5. # The function adds dns domain or dns record based on web domain alias.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument defenition
  10. user=$1
  11. domain=$(echo $2 | sed -e 's/\.*$//g' -e 's/^\.*//g')
  12. domain_idn=$(idn -t --quiet -a "$domain")
  13. dom_alias=$(idn -t --quiet -u "$3" )
  14. dom_alias=$(echo $dom_alias | sed -e 's/\.*$//g' -e 's/^\.*//g')
  15. dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]')
  16. dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
  17. restart="$4"
  18. # Includes
  19. source $VESTA/conf/vesta.conf
  20. source $VESTA/func/main.sh
  21. source $VESTA/func/domain.sh
  22. #----------------------------------------------------------#
  23. # Verifications #
  24. #----------------------------------------------------------#
  25. check_args '3' "$#" 'USER DOMAIN ALIAS'
  26. validate_format 'user' 'domain'
  27. is_system_enabled "$WEB_SYSTEM"
  28. is_system_enabled "$DNS_SYSTEM"
  29. is_object_valid 'user' 'USER' "$user"
  30. is_object_unsuspended 'user' 'USER' "$user"
  31. is_object_valid 'web' 'DOMAIN' "$domain"
  32. is_object_unsuspended 'web' 'DOMAIN' "$domain"
  33. #----------------------------------------------------------#
  34. # Action #
  35. #----------------------------------------------------------#
  36. # Parsing domain values
  37. get_domain_values 'web'
  38. # Check if it a simple domain
  39. if [ $(echo -e "${dom_alias//\./\n}" | wc -l) -le 2 ]; then
  40. if [ ! -e "$USER_DATA/dns/$dom_alias.conf" ]; then
  41. $BIN/v-add-dns-domain \
  42. $user $dom_alias $IP '' '' '' '' '' $restart > /dev/null
  43. fi
  44. else
  45. # Check subdomain
  46. sub=$(echo "$dom_alias" | cut -f1 -d . -s)
  47. dom=$(echo "$dom_alias" | sed -e "s/^$sub.//" )
  48. if [ ! -e "$USER_DATA/dns/$dom.conf" ]; then
  49. $BIN/v-add-dns-domain \
  50. $user $dom $IP '' '' '' '' $restart > /dev/null
  51. if [ $? -eq 0 ]; then
  52. $BIN/v-add-dns-domain-record \
  53. $user $dom "$sub" A $IP '' '' $restart
  54. fi
  55. else
  56. if [ "$sub" == '*' ]; then
  57. rec=$(grep -w "RECORD='\*'" $USER_DATA/dns/$dom.conf)
  58. else
  59. rec=$(grep -w "RECORD='$sub'" $USER_DATA/dns/$dom.conf)
  60. fi
  61. if [ -z "$rec" ]; then
  62. $BIN/v-add-dns-domain-record \
  63. $user $dom "$sub" A $IP '' '' $restart > /dev/null
  64. fi
  65. fi
  66. fi
  67. #----------------------------------------------------------#
  68. # Vesta #
  69. #----------------------------------------------------------#
  70. # No Logging
  71. exit