v_add_dns_on_web_alias 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/bin/bash
  2. # info: add dns domain or dns record based on web domain alias
  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=$(idn -t --quiet -u "$2" )
  12. domain_idn=$(idn -t --quiet -a "$domain")
  13. # Includes
  14. source $VESTA/conf/vesta.conf
  15. source $VESTA/func/main.sh
  16. source $VESTA/func/domain.sh
  17. #----------------------------------------------------------#
  18. # Verifications #
  19. #----------------------------------------------------------#
  20. check_args '2' "$#" 'user domain'
  21. validate_format 'user' 'domain'
  22. is_system_enabled "$WEB_SYSTEM"
  23. is_system_enabled "$DNS_SYSTEM"
  24. is_object_valid 'user' 'USER' "$user"
  25. is_object_unsuspended 'user' 'USER' "$user"
  26. is_object_valid 'web' 'DOMAIN' "$domain"
  27. is_object_unsuspended 'web' 'DOMAIN' "$domain"
  28. #----------------------------------------------------------#
  29. # Action #
  30. #----------------------------------------------------------#
  31. # Parsing domain values
  32. get_domain_values 'web'
  33. OLD_IFS=$IFS
  34. IFS=','
  35. for web_alias in $ALIAS; do
  36. # Check if parent dns domain exist
  37. sub_domain=$(echo $web_alias | cut -f1 -d .)
  38. pr_domain=$(echo $web_alias | sed -e "s/^$sub_domain.//" )
  39. check_parent=$(grep "DOMAIN='$pr_domain'" $USER_DATA/dns.conf)
  40. if [ -z "$check_parent" ]; then
  41. check_dom=$(grep "DOMAIN='$web_alias'" $USER_DATA/dns.conf)
  42. if [ -z "$check_dom" ]; then
  43. $BIN/v_add_dns_domain $user $web_alias $IP
  44. fi
  45. else
  46. check_rec=$(grep "RECORD='$sub_domain'" $USER_DATA/dns/$pr_domain.conf)
  47. if [ -z "$check_rec" ]; then
  48. $BIN/v_add_dns_domain_record $user $pr_domain $sub_domain A $IP
  49. fi
  50. fi
  51. done
  52. #----------------------------------------------------------#
  53. # Vesta #
  54. #----------------------------------------------------------#
  55. # Restart web server
  56. $BIN/v_restart_dns "$EVENT"
  57. # Logging
  58. log_history "$EVENT"
  59. log_event "$OK" "$EVENT"
  60. exit