diff --git a/bin/v-add-domain b/bin/v-add-domain new file mode 100755 index 000000000..90c24db17 --- /dev/null +++ b/bin/v-add-domain @@ -0,0 +1,86 @@ +#!/bin/bash +# info: add web/dns/mail domain +# options: USER DOMAIN [IP] +# +# The function adds web/dns/mail domain to a server. + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +user=$1 +domain=$2 +ip=$3 + +# Includes +source $VESTA/conf/vesta.conf +source $VESTA/func/main.sh +source $VESTA/func/ip.sh + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +check_args '2' "$#" 'USER DOMAIN [IP]' +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=$(grep -H "OWNER='$user'" $VESTA/data/ips/* 2>/dev/null|head -n1) + ip=$(echo "$ip" | cut -f 7 -d / | cut -f 1 -d :) + if [ -z "$ip" ]; then + # Check shared ips + admin_ips=$(grep -H "OWNER='admin'" $VESTA/data/ips/* 2>/dev/null) + admin_ips=$(echo "$admin_ips" | cut -f 7 -d / | cut -f 1 -d :) + for admin_ip in $admin_ips; do + if [ -z "$ip" ]; then + shared=$(grep "STATUS='shared'" $VESTA/data/ips/$admin_ip) + if [ ! -z "$shared" ]; then + ip=$admin_ip + fi + fi + done + fi +fi + +# Web dmain +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then + $BIN/v-add-web-domain $user $domain $ip + retun_code=$? +fi + +# DNS domain +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then + if [ "$retun_code" -eq 0 ]; then + $BIN/v-add-dns-domain $user $domain $ip + retun_code=$? + fi +fi + +# Mail domain +if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then + if [ "$retun_code" -eq 0 ]; then + $BIN/v-add-mail-domain $user $domain + retun_code=$? + fi +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit $retun_code