v-add-web-domain-backend 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. # info: add web domain backend
  3. # options: USER DOMAIN [TEMPLATE] [RESTART]
  4. #
  5. # The call is used for adding web backend configuration for user
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. domain=$2
  12. domain_idn=$(idn -t --quiet -a "$domain")
  13. template=${3-default}
  14. # Includes
  15. source $VESTA/func/main.sh
  16. source $VESTA/func/domain.sh
  17. source $VESTA/conf/vesta.conf
  18. #----------------------------------------------------------#
  19. # Verifications #
  20. #----------------------------------------------------------#
  21. check_args '2' "$#" 'USER DOMAIN [TEMPLATE] [RESTART]'
  22. validate_format 'user' 'domain'
  23. is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
  24. is_system_enabled "$WEB_BACKEND" 'WEB_BACKEND'
  25. is_object_unsuspended 'user' 'USER' "$user"
  26. is_web_backend_template_valid $template
  27. is_web_backend_pool_valid
  28. if [ -e "$pool/$backend.conf" ]; then
  29. exit
  30. fi
  31. #----------------------------------------------------------#
  32. # Action #
  33. #----------------------------------------------------------#
  34. # Allocating backend port
  35. backend_port=9000
  36. ports=$(grep -v '^;' $pool/* 2>/dev/null |grep listen |grep -o :[0-9].*)
  37. ports=$(echo "$ports" |sed "s/://" |sort -n)
  38. for port in $ports; do
  39. if [ "$backend_port" -eq "$port" ]; then
  40. backend_port=$((backend_port + 1))
  41. fi
  42. done
  43. # Adding backend config
  44. cat $WEBTPL/$WEB_BACKEND/$template.tpl |\
  45. sed -e "s|%backend_port%|$backend_port|" \
  46. -e "s|%user%|$user|"\
  47. -e "s|%domain%|$domain|"\
  48. -e "s|%domain_idn%|$domain_idn|"\
  49. -e "s|%backend%|$backend|g" > $pool/$backend.conf
  50. #----------------------------------------------------------#
  51. # Vesta #
  52. #----------------------------------------------------------#
  53. # Restart backend server
  54. if [ "$restart" != 'no' ]; then
  55. $BIN/v-restart-web-backend
  56. check_result $? "Web backend restart failed" >/dev/null
  57. fi
  58. # Logging
  59. log_history "added $WEB_BACKEND backend configuration for $domain"
  60. log_event "$OK" "$EVENT"
  61. exit