11#! /bin/bash
2- # info: add dns domain or dns record based on web domain alias
2+ # info: add dns domain or dns record based on web domain alias restart
33# options: user domain
44#
55# The function adds dns domain or dns record based on web domain alias.
1111
1212# Argument defenition
1313user=$1
14- domain=$( echo $domain | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
14+ domain=$( echo $2 | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
1515domain_idn=$( idn -t --quiet -a " $domain " )
16+ dom_alias=$( idn -t --quiet -u " $3 " )
17+ dom_alias=$( echo $dom_alias | sed -e ' s/\.*$//g' -e ' s/^\.*//g' )
18+ dom_alias=$( echo $dom_alias | tr ' [:upper:]' ' [:lower:]' )
19+ dom_alias_idn=$( idn -t --quiet -a " $dom_alias " )
20+ restart=" $4 "
1621
1722# Includes
1823source $VESTA /conf/vesta.conf
@@ -24,7 +29,7 @@ source $VESTA/func/domain.sh
2429# Verifications #
2530# ----------------------------------------------------------#
2631
27- check_args ' 2 ' " $# " ' user domain'
32+ check_args ' 3 ' " $# " ' user domain alias '
2833validate_format ' user' ' domain'
2934is_system_enabled " $WEB_SYSTEM "
3035is_system_enabled " $DNS_SYSTEM "
@@ -41,34 +46,35 @@ is_object_unsuspended 'web' 'DOMAIN' "$domain"
4146# Parsing domain values
4247get_domain_values ' web'
4348
44- OLD_IFS= $IFS
45- IFS= ' , '
46- for web_alias in $ALIAS ; do
47- # Check if parent dns domain exist
48- sub_domain= $( echo $web_alias | cut -f1 -d . )
49- pr_domain= $( echo $web_alias | sed -e " s/^ $sub_domain .// " )
50- check_parent= $( grep " DOMAIN=' $pr_domain ' " $USER_DATA /dns.conf )
51- if [ -z " $check_parent " ] ; then
52- check_dom =$( grep " DOMAIN=' $web_alias ' " $USER_DATA /dns.conf )
53- if [ -z " $check_dom " ]; then
54- $BIN /v_add_dns_domain $user $web_alias $IP
55- fi
49+ # Check if it a simple domain
50+ if [ $( echo -e " ${dom_alias // \. / \n } " | wc -l ) -le 2 ] ; then
51+ if [ ! -e " $USER_DATA /dns/ $dom_alias .conf " ] ; then
52+ $BIN /v_add_dns_domain $user $dom_alias $IP ' ' ' ' ' ' ' ' ' ' $restart
53+ fi
54+ else
55+ # Check subdomain
56+ sub= $( echo " $dom_alias " | cut -f1 -d . -s )
57+ dom =$( echo " $dom_alias " | sed -e " s/^ $sub .// " )
58+ if [ ! -e " $USER_DATA /dns/ $dom .conf " ]; then
59+ $BIN /v_add_dns_domain $user $dom $IP ' ' ' ' ' ' ' ' ' ' $restart
60+ $BIN /v_add_dns_domain_record $user $dom " $sub " A $IP ' ' ' ' $restart
5661 else
57- check_rec=$( grep " RECORD='$sub_domain '" $USER_DATA /dns/$pr_domain .conf)
58- if [ -z " $check_rec " ]; then
59- $BIN /v_add_dns_domain_record $user $pr_domain $sub_domain A $IP
62+ if [ " $sub " == ' *' ]; then
63+ rec=$( grep -w " RECORD='\*'" $USER_DATA /dns/$dom .conf)
64+ else
65+ rec=$( grep -w " RECORD='$sub '" $USER_DATA /dns/$dom .conf)
66+ fi
67+ if [ -z " $rec " ]; then
68+ $BIN /v_add_dns_domain_record $user $dom " $sub " A $IP ' ' ' ' $restart
6069 fi
6170 fi
62- done
71+ fi
6372
6473
6574# ----------------------------------------------------------#
6675# Vesta #
6776# ----------------------------------------------------------#
6877
69- # Restart web server
70- $BIN /v_restart_dns " $EVENT "
71-
7278# Logging
7379log_history " $EVENT "
7480log_event " $OK " " $EVENT "
0 commit comments