#!/bin/bash # info: add web/dns/mail domain # options: USER DOMAIN [IP] [RESTART] # # The function adds web/dns/mail domain to a server. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument definition user=$1 domain=$2 ip=$3 restart="${4-yes}" # Includes source $VESTA/func/main.sh source $VESTA/func/ip.sh source $VESTA/conf/vesta.conf #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '2' "$#" 'USER DOMAIN [IP] [RESTART]' validate_format 'user' 'domain' if [ ! -z "$ip" ] ; then validate_format 'ip' fi is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Get ip if it wasn't defined if [ -z "$ip" ]; then ip=$(get_user_ip $user) if [ -z "$ip" ]; then echo "Error: no avaiable IP address" log_event "$E_NOTEXIST" "$EVENT" exit $E_NOTEXIST fi fi # Web domain if [ ! -z "$WEB_SYSTEM" ]; then $BIN/v-add-web-domain $user $domain $ip 'no' return_code=$? fi # Proxy support if [ ! -z "$PROXY_SYSTEM" ] && [ "$return_code" -eq 0 ]; then extentions="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls" extentions="$extentions,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav" extentions="$extentions,bmp,rtf,js,mp3,avi,mpeg,flv,html,htm" $BIN/v-add-web-domain-proxy $user $domain 'default' "$extentions" 'no' fi # DNS domain if [ ! -z "$DNS_SYSTEM" ] && [ "$return_code" -eq 0 ]; then $BIN/v-add-dns-domain $user $domain $ip 'no' return_code=$? fi # Mail domain if [ ! -z "$MAIL_SYSTEM" ] && [ "$return_code" -eq 0 ]; then $BIN/v-add-mail-domain $user $domain return_code=$? fi # Restart services if [ "$restart" != 'no' ] && [ "$return_code" -eq 0 ]; then $BIN/v-restart-web $BIN/v-restart-proxy $BIN/v-restart-dns fi #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# exit $return_code